{
  "opencollection": "1.0.0",
  "info": {
    "name": "Duvo Public Agent Folders Secrets API",
    "version": "1.0.0"
  },
  "items": [
    {
      "info": {
        "name": "Secrets",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Secret",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.duvo.ai/v2/credentials/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get an env-var secret by id. Returns metadata and env var keys; secret values are never exposed."
        },
        {
          "info": {
            "name": "Update Secret",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.duvo.ai/v2/credentials/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update an env-var secret. Send `values` to replace all entries, or any of `rename_keys`, `remove_keys`, `add_values` for a non-destructive patch. Editing a team-shared secret or toggling sharing requires manager role."
        },
        {
          "info": {
            "name": "Delete Secret",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.duvo.ai/v2/credentials/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Soft-delete an env-var secret. Deleting a team-shared secret requires manager role."
        },
        {
          "info": {
            "name": "List Revision Secrets",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.duvo.ai/v2/agents/:agentId/revisions/:buildId/credentials",
            "params": [
              {
                "name": "agentId",
                "value": "",
                "type": "path"
              },
              {
                "name": "buildId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List env-var secrets attached to a specific revision (build) of an assignment. Returns metadata and env-var keys only — secret values are never exposed."
        },
        {
          "info": {
            "name": "Attach Revision Secret",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.duvo.ai/v2/agents/:agentId/revisions/:buildId/credentials",
            "params": [
              {
                "name": "agentId",
                "value": "",
                "type": "path"
              },
              {
                "name": "buildId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Attach an env-var secret to a revision so its keys are injected into Runs spawned from that revision. Personal secrets can only be attached by their owner; team-shared secrets require builder permissions."
        },
        {
          "info": {
            "name": "Detach Revision Secret",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.duvo.ai/v2/agents/:agentId/revisions/:buildId/credentials/:credentialId",
            "params": [
              {
                "name": "agentId",
                "value": "",
                "type": "path"
              },
              {
                "name": "buildId",
                "value": "",
                "type": "path"
              },
              {
                "name": "credentialId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Detach an env-var secret from a revision. Personal secrets can only be detached by their owner; team-shared secrets require builder permissions."
        },
        {
          "info": {
            "name": "List Secrets",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.duvo.ai/v2/teams/:teamId/credentials",
            "params": [
              {
                "name": "teamId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List env-var secrets visible to the caller — team-shared (user_id IS NULL) plus the caller's own personal entries. Returns metadata and env-var keys only; secret values are never exposed."
        },
        {
          "info": {
            "name": "Create Secret",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.duvo.ai/v2/teams/:teamId/credentials",
            "params": [
              {
                "name": "teamId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create an env-var secret. Personal by default; pass `shared: true` to create a team-shared secret (requires manager role)."
        }
      ]
    }
  ],
  "bundled": true
}