pensar apps
Overview
The pensar apps command lets you manage your attack surface — the applications and endpoints Pensar knows about — through the Pensar Console API. You can list, view, create, update, and delete apps, and do the same for the endpoints that belong to them. It also exposes the workspace’s domains, so you can resolve the domain an app links to without leaving the terminal.
All commands operate on the selected workspace, which is chosen when you connect with pensar login. Apps and endpoints are scoped to that workspace — there is no project argument.
Usage
Prerequisites
You must be connected to Pensar Console via pensar login before using this command. Every subcommand acts on the workspace you are logged into.
App Subcommands
List Apps
Lists apps in the selected workspace. Responses are paginated and returned as JSON of the form { apps, hasMore, limit, offset }.
To page through all apps, increment --offset by --limit until hasMore is false.
Get App Details
Returns detailed information about a single app, including its description and disallowed-actions notes.
Create an App
Creates a new app in the workspace. --name and --description are required.
Update an App
Updates one or more fields on an existing app. Only the flags you pass are changed; the same field flags as create are accepted (all optional here).
Delete an App
Deletes an app from the workspace. Returns { success, appId }.
Domain Subcommands
Apps link to a domain by UUID via --domain. These two subcommands are how you find or mint that UUID.
List Domains
Lists the domains in the selected workspace as { domains }, where each entry is { id, url, verified }. Use the id as the --domain value on apps create or apps update.
Create a Domain
Creates a domain in the workspace and returns { id, url, verified }.
Domains created through the API are canonicalized and created idempotently — passing a domain that already exists returns the existing record rather than failing. They stay unverified and do not start reconnaissance. Verification happens in Console.
Endpoint Subcommands
List Endpoints
Lists the endpoints belonging to an app. Responses are paginated and returned as JSON of the form { endpoints, hasMore, limit, offset }. List responses use a lean endpoint shape — fetch a single endpoint with endpoint <endpointId> for the full detail (objectives, business logic, threat model, etc.).
Get Endpoint Details
Returns full detail for a single endpoint, including its objectives, authentication requirements, risk-score breakdown, business-logic notes, and threat model.
Create an Endpoint
Creates an endpoint under the given app. --endpoint and --description are required.
Pass --objective more than once to attach multiple objectives. --auth-required and --no-auth-required are mutually exclusive.
Update an Endpoint
Updates one or more fields on an existing endpoint. Only the flags you pass are changed; every field flag from endpoint-create is accepted here (all optional), plus one that is update-only:
--app is not a valid flag on endpoint-create — the parent app is the positional <appId> argument there.
Delete an Endpoint
Deletes an endpoint. Returns { success, endpointId }.
Search Subcommands
Both search commands run a substring match across the selected workspace and return paginated JSON ({ ..., hasMore, limit, offset, query }). Search pages default to 50 (max 200).
Search Apps
Search Endpoints
App types
--type on an app accepts one of: ui, api-service, web-application, full-stack, domain, subdomain, database, cloud-resource, storage.
Endpoint types
--type on an endpoint accepts one of: api-endpoint, web-endpoint, auth-endpoint, database, file-storage, asset.
Endpoint transports
--transport on an endpoint accepts one of: http, grpc, grpc_web, connect. Endpoints created without it default to http.