Skip to content
Latest (currently 2026.7.0) has the newest features, bug fixes, and CVE patches of Solo Enterprise for agentregistry.

Artifact approval

Page as Markdown

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.

Approval mode applies to AI artifacts only, such as agents and MCP servers. If non-admin users create a deployment that references a staged AI artifact, the deployment is pending until an admin user approves the staged artifact. If the admin rejects the AI artifact update, the deployment remains in a pending state and must be either deleted or updated to reference an approved artifact. Deployments for already approved agents are not staged and are applied immediately.

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

  1. Follow one of the Get started guides to install Solo Enterprise for agentregistry and connect a runtime.

  2. 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

  1. Optional: Save the current Helm values to a file for reference.

    helm get values agentregistry --namespace agentregistry-system -o yaml > agentregistry-values.yaml
  2. Upgrade the Helm release to enable the approval mode. The --reuse-values flag 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"
  3. Verify that all Solo Enterprise for agentregistry control plane pods are up and running.

    kubectl get pods -n agentregistry-system
  4. Open 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)

  1. Log out of the current CLI session.

    arctl user logout
  2. Log in to Solo Enterprise for agentregistry with the dev-user username and password. Complete the device authorization grant when prompted.

    arctl user login
  3. Publish 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
    EOF

    Example output:

    ✓ Agent/approval-agent (latest) staged
    
  4. List the agents in your environment and verify that you do not see the approval-agent yet.

    arctl get agent 
  5. Create 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}
    EOF

    Example output:

    ✓ Deployment/approval-agent created
    
  6. Verify that the deployment remains in a pending state, because the approval-agent artifact is not approved yet.

    arctl get deployment approval-agent

    Example 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.
  1. Log in to the Solo Enterprise for agentregistry UI as an admin user with the admin-user username and password, and go to the Catalog.

  2. Open the Administrative requests view and verify that you see the approval-agent agent. 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.

  3. Verify that the agent is added to the catalog.

  4. Go to the Instances view and verify that the deployment is started.

You can retroactively delete an AI artifact from the catalog that you approved before. To delete the AI artifact, you must first remove all deployments that reference that artifact. Then, go to the Catalog, select the artifact that you want to delete, and click Delete.