This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Creating and Managing Apps

Apps are managed through the Anchore Enterprise GUI, AnchoreCTL, or the Anchore API. The three surfaces share the same data model — see Anatomy of an App for the field reference.

The lifecycle is straightforward: create an app, list and inspect the apps in your account, update the version status as apps are released or releases reach end of life (EOL), and update an app’s metadata as ownership or policy assignment changes.

Manage Apps in the Anchore Enterprise GUI

The Apps view is the home for app management in the UI. From there you can browse every app in your current account, drill into a specific app to see its versions, and trigger the create / edit / delete flows from a single screen.

Create an App in the GUI

Click Create Application in the Apps view. The Create Application dialog opens on the application details: enter an Application Name and, optionally, a Description. Default Policy starts as Active Policy, which evaluates the app against whichever policy is active in the account, including after the active policy changes. Choose a specific policy to evaluate the app against that policy instead.

Click Next to fill in who to contact about the application. Contact/Team Name is required; Organization Name, Email and Phone Number are optional. Click Create to create the app, or Back to return to the application details.

The contact’s Organization Name names the organization responsible for the app. Anchore Enterprise uses it as the author of the app’s version VEX and VDR documents and as the source of its VEX annotations. If you leave it blank, the account’s Organization Name is used instead, and the Apps view shows that name.

Edit an App in the GUI

From the Apps view or from an app’s detail page, open the Edit action to update the app’s name, description, contact, or policy assignment. The same field rules apply as on create.

Delete an App in the GUI

Open the Delete action from the Apps view or detail page. If the app still has versions attached, the GUI prompts you to confirm a forced delete that cascades to every version and asset under the app.


Manage Apps with AnchoreCTL

AnchoreCTL exposes the full CRUD surface for apps under anchorectl app. Every command accepts either an app name or its UUID, and the output format is controlled with -o text|json|json-raw|id.

Create an App

Create a new app with the add subcommand. The app name is the positional argument, and the contact name is the only required flag:

anchorectl app add my-service \
  --contact-name "Platform Team" \
  --contact-email [email protected] \
  --description "Customer-facing API service"

Optional flags include --contact-email, --contact-phone, --contact-organization, --description, and --policy-id. Without --contact-organization, the app uses the account’s Organization Name.

List Apps

List every app in the current account with no arguments:

anchorectl app list

To narrow the result to a single app by exact name, add --name:

anchorectl app list --name my-service

Get an App

Retrieve a single app’s record by either its name or UUID:

anchorectl app get my-service

Use -o json for the structured record, which includes system_metadata and the resolved policy_id. Its contact also carries the effective organization name: the app’s own organization if set, otherwise the account’s Organization Name. The text output’s Organization field, and the ORGANIZATION column of anchorectl app list, show only the app’s own value and are empty when the app uses the account’s.

Update an App

Update one or more fields on an existing app. Only the flags you provide are sent — omitted flags leave the corresponding fields unchanged:

anchorectl app update my-service \
  --description "Customer-facing API service (regulated)" \
  --policy-id strict-policy

To clear the policy assignment and fall back to the account default, pass an empty string: --policy-id "". Likewise, --contact-organization "" clears the app’s own organization so that it uses the account’s Organization Name again.

Delete an App

Delete an app by name or UUID. The default behavior refuses to delete an app that still has versions attached:

anchorectl app delete my-service

To cascade the delete through every version and every asset under the app, add --force:

anchorectl app delete my-service --force

Manage Apps with the API

App management is exposed under the /apps collection — create, list, get, update, and delete operations are all available, with cascading delete via ?force=true. The full endpoint inventory, request and response schemas, and error codes are in the API browser; search for the Apps tag.

A few conventions worth knowing as you call these endpoints:

  • List endpoints return paginated responses — see Pagination.
  • Cross-account requests are scoped via the x-anchore-account header or, from AnchoreCTL, the ANCHORECTL_ACCOUNT environment variable. See Account Scoping for the full mechanism.