Artifact approval
Require admin approval before non-admin users can create, update, or delete an AI artifact from the registry catalog.
About artifact approval mode
Registry admin users can enable artifact approval mode in Solo Enterprise for agentregistry. With approval mode, non-admin users cannot create, update, or delete an AI artifact in the registry catalog without the approval from a registry admin user. All AI artifact change requests are staged. An admin must review staged changes, and either approve or reject a request before the update of the AI artifact is visible to all registry users.
Admin users can always perform create, update, or delete operations on an AI artifact without obtaining an approval first.
The following diagram shows the lifecycle of an AI artifact change request and the operations that an admin or non-admin user can perform when artifact approval mode is enabled.
sequenceDiagram
participant NA as Non-admin user
participant AR as agentregistry
participant A as Admin
Note over NA,A: Stage an AI artifact
NA->>AR: Create, update, or delete an AI artifact
AR-->>NA: Artifact update pending approval
Note over NA,A: Manage approval queue
A->>AR: View approval queue (UI)
AR-->>A: All pending requests
alt Admin approves request
A->>AR: Approve request (UI)
AR-->>A: approved
AR->>AR: Update AI artifact in registry catalog
else Non-admin user withdraws request
NA->>AR: Withdraw request (UI)
AR->>AR: Remove request from queue
AR-->>NA: request removed
else Admin withdraws request
A->>AR: Withdraw request (UI)
AR->>AR: Remove request from queue
AR-->>A: request removed
end
Note over NA,A: Delete approved AI artifacts
A->>AR: View approved artifacts
AR-->>A: All artifacts
A->>AR: Delete artifact
AR->>AR: Delete artifact from registry
AR-->>A: deleted
Note over NA,A: Deploy a pending artifact
NA->>AR: Create deployment for pending artifact
AR-->>NA: Deployment pending
alt Admin approves artifact
A->>AR: Approve artifact (UI)
AR->>AR: Apply artifact to registry catalog
AR->>AR: Re-reconcile Deployment
AR-->>NA: Deployment applied
else Admin withdraws artifact
A->>AR: Withdraw artifact (UI)
AR-->>NA: Deployment remains pending
end
Before you begin
Follow one of the Get started guides to install Solo Enterprise for agentregistry and connect a runtime.
Follow the restrict registry access guide to set up a non-admin user (
dev-user) and apply an AccessPolicy that grants the user read, publish, and deploy permissions to the registry. For example, you might apply an AccessPolicy that looks similar to the following.cat <<EOF | arctl apply -f- apiVersion: ar.dev/v1alpha1 kind: AccessPolicy metadata: name: developers spec: principals: - kind: Role name: developers rules: - actions: - "registry:read" - "registry:publish" - "registry:edit" - "registry:deploy" resources: - kind: agent name: "*" - kind: server name: "*" - kind: runtime name: "*" EOF
Step 1: Enable approval mode
Optional: Save the current Helm values to a file for reference.
helm get values agentregistry --namespace agentregistry-system -o yaml > agentregistry-values.yamlUpgrade the Helm release to enable the approval mode. The
--reuse-valuesflag re-applies all values from the previous release automatically.helm upgrade -i agentregistry \ oci://us-docker.pkg.dev/solo-public/agentregistry-enterprise/helm/agentregistry-enterprise \ --namespace agentregistry-system \ --reuse-values \ --set config.requireCreateApproval="true"Verify that all Solo Enterprise for agentregistry control plane pods are up and running.
kubectl get pods -n agentregistry-systemOpen the UI and go to the Catalog page. Verify that you can see the Administrative Requests card.
Step 2: Trigger an approval flow (non-admin)
Log out of the current CLI session.
arctl user logoutLog in to Solo Enterprise for agentregistry with the
dev-userusername andpassword. Complete the device authorization grant when prompted.arctl user loginPublish an agent to the registry catalog. Verify that the agent is staged and not applied directly.
arctl apply -f- <<EOF apiVersion: ar.dev/v1alpha1 kind: Agent metadata: name: approval-agent spec: source: image: localhost:5001/myagent:latest repository: url: https://github.com/solo-io/doc-examples subfolder: agentregistry/myagent modelProvider: bedrock modelName: us.anthropic.claude-sonnet-4-6 description: myagent agent mcpServers: - kind: MCPServer name: mymcp EOFExample output:
✓ Agent/approval-agent (latest) stagedList the agents in your environment and verify that you do not see the
approval-agentyet.arctl get agentCreate a deployment for the staged agent.
arctl apply -f- <<EOF apiVersion: ar.dev/v1alpha1 kind: Deployment metadata: name: approval-agent spec: targetRef: kind: Agent name: approval-agent runtimeRef: kind: Runtime name: agentcore deploymentRefs: - name: mymcp runtimeConfig: region: $AWS_REGION workdir: agentregistry/myagent networkMode: vpc subnetIds: ${SUBNET_IDS_YAML} securityGroupIds: - ${SG_ID} EOFExample output:
✓ Deployment/approval-agent createdVerify that the deployment remains in a pending state, because the
approval-agentartifact is not approved yet.arctl get deployment approval-agentExample output:
NAME TARGET VERSION TYPE RUNTIME STATUS default/approval-agent approval-agent agent agentcore pending
Step 3: Manage the approval queue (admin)
As an admin, you can review all staged requests and take one of the following actions:
- Approve: Applies the staged AI artifact and adds it to the registry catalog. The artifact immediately becomes visible to users who have read access. Deployments that referenced the staged artifact are kicked off.
- Withdraw: Removes a staged request without applying it. The artifact is not published to the registry catalog. Deployments that reference the staged artifact remain in a pending state.
- Delete: Removes an artifact that was previously added to the registry catalog.
Log in to the Solo Enterprise for agentregistry UI as an admin user with the
admin-userusername andpassword, and go to the Catalog.Open the Administrative requests view and verify that you see the
approval-agentagent. Select the agent and click Approve. Then, click OK to confirm the approval.Similarly, if you decide to reject the request, click Withdraw and confirm the rejection in the pop-up window. Note that the agent is not added to the registry catalog and that deployments that reference a staged agent remain in a pending state.
Verify that the agent is added to the catalog.
Go to the Instances view and verify that the deployment is started.