Pular para o conteúdo

Contas de serviço e chaves ​

Contas de serviço para CI e automação, com as chaves, políticas, delegações e auditoria delas.

Operações deste grupo com a regra de acesso, a regra de repetição, os parâmetros e as respostas. Toda solicitação leva uma chave: Authorization: Bearer <chave> (consulte “Autenticação”).

Operações ​

Listar contas de serviço ​

GET HEAD /api/v1/service-accounts

Acesso: Permissão de administração de serviços service-account.read · Repetição: Pode ser repetida com segurança (leitura)

Lista as contas de serviço que o chamador pode ver, ordenadas por ID, 50 por página, cada uma com nome, indicador de ativação, revision, bindings da política e data de criação; continue com after definido como next. A chave de bootstrap vê todas; um delegado vê apenas os alvos cuja delegação inclui service-account.read; sem isso, a lista vem vazia em vez de ser recusada.

Parâmetros

NomeLocalTipoObrigatórioRegras
afterconsultastring (uuid)não—

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 50 itens
items[].idstring (uuid)sim—
items[].namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
items[].enabledbooleansim—
items[].revisionintegersim1–2147483647
items[].bindingsarray de objectsimaté 64 itens
items[].bindings[].resourceobjectsim—
items[].bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
items[].createdAtstring (date-time)sim—
nextstring (uuid)simpode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Criar uma conta de serviço ​

POST /api/v1/service-accounts

Acesso: Chave de bootstrap (chave de recuperação da instalação) · Repetição: Não repetir automaticamente

Cria uma identidade de máquina para CI ou para um aplicativo com name (3–64 letras, dígitos ou _.-) e os bindings da sua política: para cada repositório, as ações exatas que suas chaves podem usar (como upload.create ou content.read). Responde 201 com a conta; depois emita uma chave com issueServiceKey. Um nome já em uso gera 409 already_exists.

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Resposta 201

CampoTipoObrigatórioRegras
idstring (uuid)sim—
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleansim—
revisionintegersim1–2147483647
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)sim—

Respostas: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/service-accounts" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","bindings":[]}'

Obter uma conta de serviço ​

GET HEAD /api/v1/service-accounts/{id}

Acesso: Permissão de administração de serviços service-account.read · Repetição: Pode ser repetida com segurança (leitura)

Retorna o nome, o indicador de ativação, a revision, os vínculos da política e a data de criação da conta. Para um delegado, uma conta que não lhe foi atribuída responde 404, e uma ação ausente em uma conta atribuída responde 403.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Resposta 200

CampoTipoObrigatórioRegras
idstring (uuid)sim—
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleansim—
revisionintegersim1–2147483647
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)sim—

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Ativar ou desativar uma conta de serviço ​

PATCH /api/v1/service-accounts/{id}

Acesso: Permissão de administração de serviços service-account.manage · Repetição: Repetir somente com a revisão esperada (compare-and-swap)

Define enabled; expectedRevision deve ser a revisão atual; caso contrário, 409 revision_mismatch. Somente este indicador muda aqui (o nome não pode ser alterado). Desativar bloqueia todas as chaves da conta a partir da próxima solicitação; ativar restaura as chaves que não expiraram nem foram revogadas. Um delegado só pode fazê-lo quando toda a política atual está dentro do seu teto.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
expectedRevisionintegersim1–2147483646
enabledbooleansim—

Resposta 200

CampoTipoObrigatórioRegras
idstring (uuid)sim—
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleansim—
revisionintegersim1–2147483647
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)sim—

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X PATCH "$ARKVORY_URL/api/v1/service-accounts/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1,"enabled":false}'

Obter a política de uma conta de serviço ​

GET HEAD /api/v1/service-accounts/{id}/policy

Acesso: Permissão de administração de serviços policy.read · Repetição: Pode ser repetida com segurança (leitura)

Retorna a conta com os bindings e a revision da sua política, como getServiceAccount, para um chamador que tem policy.read. As permissões efetivas de uma chave são a interseção desta política com os vínculos da própria chave, por repositório e ação.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Resposta 200

CampoTipoObrigatórioRegras
idstring (uuid)sim—
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleansim—
revisionintegersim1–2147483647
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)sim—

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/policy" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Substituir a política de uma conta de serviço ​

PUT /api/v1/service-accounts/{id}/policy

Acesso: Permissão de administração de serviços policy.manage · Repetição: Repetir somente com a revisão esperada (compare-and-swap)

Substitui os bindings da conta (até 64, cada um um repositório com suas ações exatas); expectedRevision deve ser a revisão atual; caso contrário, 409 revision_mismatch. Cada chave segue a mudança a partir da sua próxima solicitação: a restrição entra em vigor imediatamente, e a ampliação nunca vai além dos vínculos da própria chave. Um delegado precisa que tanto a política atual quanto a nova estejam dentro do seu teto.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
expectedRevisionintegersim1–2147483646
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Resposta 200

CampoTipoObrigatórioRegras
idstring (uuid)sim—
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
enabledbooleansim—
revisionintegersim1–2147483647
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)sim—

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X PUT "$ARKVORY_URL/api/v1/service-accounts/$ID/policy" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1,"bindings":[]}'

Listar as chaves de uma conta de serviço ​

GET HEAD /api/v1/service-accounts/{id}/keys

Acesso: Permissão de administração de serviços credential.read · Repetição: Pode ser repetida com segurança (leitura)

Lista os metadados das chaves da conta ordenados por ID, 50 por página: nome, state (pending, active, revoked), vínculos, criação, expiração, prazo de ativação e a chave da qual ela foi rotacionada; nunca segredos nem hashes. Continue com after definido como next. A expiração não altera state; portanto, compare expiresAt com a hora atual.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
afterconsultastring (uuid)não—

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 50 itens
items[].idstring (uuid)sim—
items[].accountIdstring (uuid)sim—
items[].namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
items[].statestringsimum destes: pending, active, revoked
items[].bindingsarray de objectsimaté 64 itens
items[].bindings[].resourceobjectsim—
items[].bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
items[].createdAtstring (date-time)sim—
items[].expiresAtstring (date-time)sim—
items[].activationExpiresAtstring (date-time)sim—
items[].rotatedFromstring (uuid)simpode ser null
nextstring (uuid)simpode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/keys" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Emitir uma chave para uma conta de serviço ​

POST /api/v1/service-accounts/{id}/keys

Acesso: Permissão de administração de serviços credential.manage · Repetição: Pode ser repetida com segurança com a mesma Idempotency-Key

Emite uma chave pendente com name, bindings (efetivos apenas onde a política da conta também os permite) e expiresAt opcional (UTC; 90 dias por padrão, no máximo 365 e, para um delegado, nunca além da sua própria chave). A primeira resposta é 201 com key e o secret, exibido somente desta vez; uma repetição com o mesmo Idempotency-Key e o mesmo corpo é 200 apenas com os metadados, e um corpo diferente é 409. O titular deve chamar activateServiceKey com o segredo em até 15 minutos; se o segredo foi perdido, revogue a chave e emita uma nova com um novo Idempotency-Key.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
Idempotency-Keycabeçalhostringsimaté 128 caracteres

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
expiresAtstring (date-time)não—

Resposta 200

CampoTipoObrigatórioRegras
keyobjectsim—
key.idstring (uuid)sim—
key.accountIdstring (uuid)sim—
key.namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
key.statestringsimum destes: pending, active, revoked
key.bindingsarray de objectsimaté 64 itens
key.bindings[].resourceobjectsim—
key.bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
key.createdAtstring (date-time)sim—
key.expiresAtstring (date-time)sim—
key.activationExpiresAtstring (date-time)sim—
key.rotatedFromstring (uuid)simpode ser null
secretstringnão—

Respostas: 200, 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/service-accounts/$ID/keys" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","bindings":[]}'

Ler a auditoria de uma conta de serviço ​

GET HEAD /api/v1/service-accounts/{id}/audit

Acesso: Permissão de administração de serviços service-audit.read · Repetição: Pode ser repetida com segurança (leitura)

Retorna, do mais antigo para o mais recente, até 100 eventos da conta após a sequência after (padrão 0): alterações de conta, de política e de chaves, como emissão, rotação, ativação e revogação, cada uma com ator, ação, chave e hora. Para ler mais, passe o último sequence como after; não existe o campo next. Somente os 100 000 eventos mais recentes do servidor são mantidos.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
afterconsultastringnãoum número inteiro em dígitos decimais, enviado como string

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 100 itens
items[].sequencestringsim—
items[].actorstringsim—
items[].actionstringsim—
items[].accountIdstring (uuid)sim—
items[].keyIdstring (uuid)simpode ser null
items[].occurredAtstring (date-time)sim—

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/audit" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Obter uma chave ​

GET HEAD /api/v1/api-keys/{id}

Acesso: Permissão de administração de serviços credential.read · Repetição: Pode ser repetida com segurança (leitura)

Retorna os metadados de uma chave gerenciada: sua conta, nome, estado, vínculos, criação, expiração, prazo de ativação e a chave da qual foi rotacionada; nunca o segredo nem o seu hash.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Resposta 200

CampoTipoObrigatórioRegras
idstring (uuid)sim—
accountIdstring (uuid)sim—
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
statestringsimum destes: pending, active, revoked
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
createdAtstring (date-time)sim—
expiresAtstring (date-time)sim—
activationExpiresAtstring (date-time)sim—
rotatedFromstring (uuid)simpode ser null

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/api-keys/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Rotacionar uma chave ​

POST /api/v1/api-keys/{id}/rotate

Acesso: Permissão de administração de serviços credential.manage · Repetição: Pode ser repetida com segurança com a mesma Idempotency-Key

Emite um sucessor pendente da chave id para a mesma conta, com os mesmos bindings ou mais restritos, respondendo como issueServiceKey: 201 com o secret de uso único, 200 apenas com os metadados em uma repetição com o mesmo Idempotency-Key. Depois que o sucessor é ativado, a chave antiga continua válida por no máximo mais 24 horas; revogue-a explicitamente quando a nova funcionar, mas somente depois que os jobs iniciados por ela terminarem. As delegações mantidas por uma chave de operador não são copiadas para o seu sucessor.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
Idempotency-Keycabeçalhostringsimaté 128 caracteres

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
bindingsarray de objectsimaté 64 itens
bindings[].resourceobjectsim—
bindings[].resource.kindstringsimum destes: repository
bindings[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
expiresAtstring (date-time)não—

Resposta 200

CampoTipoObrigatórioRegras
keyobjectsim—
key.idstring (uuid)sim—
key.accountIdstring (uuid)sim—
key.namestringsimcorresponde a ^[a-zA-Z0-9_.-]{3,64}$
key.statestringsimum destes: pending, active, revoked
key.bindingsarray de objectsimaté 64 itens
key.bindings[].resourceobjectsim—
key.bindings[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read
key.createdAtstring (date-time)sim—
key.expiresAtstring (date-time)sim—
key.activationExpiresAtstring (date-time)sim—
key.rotatedFromstring (uuid)simpode ser null
secretstringnão—

Respostas: 200, 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/api-keys/$ID/rotate" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name":"<name>","bindings":[]}'

Revogar uma chave ​

POST /api/v1/api-keys/{id}/revoke

Acesso: Permissão de administração de serviços credential.manage · Repetição: Pode ser repetida com segurança: a mesma solicitação tem o mesmo efeito

Revoga a chave definitivamente: sua próxima solicitação falha, enquanto um download já em andamento não é interrompido. Repetir tem sucesso com 204. As chaves que uma chave de operador revogada emitiu e que já foram ativadas continuam válidas; revogue-as separadamente.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Respostas: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/api-keys/$ID/revoke" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Ativar uma chave ​

POST /api/v1/auth/activate-key

Acesso: A chave emitida, antes ou depois da ativação · Repetição: Pode ser repetida com segurança: a mesma solicitação tem o mesmo efeito

Comprova que o titular recebeu uma chave recém-emitida: chame-o com essa chave como Authorization: Bearer em até 15 minutos após a emissão, e a chave se torna ativa (204). Repetir é seguro e não prorroga a expiração. Ativar uma chave rotacionada reduz o tempo de vida restante da chave que ela substitui para no máximo 24 horas.

Respostas: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507

Exemplo

bash
curl -X POST "$ARKVORY_URL/api/v1/auth/activate-key" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Listar as delegações de uma chave ​

GET HEAD /api/v1/api-keys/{id}/delegations

Acesso: Chave de bootstrap ou a própria chave · Repetição: Pode ser repetida com segurança (leitura)

Retorna as delegações mantidas pela chave de operador id, até 64, inclusive as desativadas: para cada conta alvo, sua revision, se está enabled, as actions de administração (como credential.manage) e o ceiling de vínculos de repositório que ela pode repassar. Um delegado lê aqui as suas próprias (o ID da sua chave é credentialId em getOwnPermissions); a lista de outra chave gera 403.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—

Resposta 200

CampoTipoObrigatórioRegras
itemsarray de objectsimaté 64 itens
items[].keyIdstring (uuid)sim—
items[].targetAccountIdstring (uuid)sim—
items[].enabledbooleansim—
items[].revisionintegersim1–2147483647
items[].actionsarray de stringsimaté 7 itens; sem itens repetidos; cada item: um destes: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
items[].ceilingarray de objectsimaté 16 itens
items[].ceiling[].resourceobjectsim—
items[].ceiling[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Respostas: 200, 400, 401, 403, 404, 409, 422, 503, 507

Exemplo

bash
curl -X GET "$ARKVORY_URL/api/v1/api-keys/$ID/delegations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Delegar a administração de uma conta de serviço ​

PUT /api/v1/api-keys/{id}/delegations/{accountId}

Acesso: Chave de bootstrap (chave de recuperação da instalação) · Repetição: Repetir somente com a revisão esperada (compare-and-swap)

Permite que a chave id administre a conta de serviço accountId com as actions informadas (service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read) dentro do ceiling, até 16 vínculos de repositório que ela pode repassar; manage não implica read. expectedRevision é 0 para criar e a revisão atual do registro para alterá-lo ou reativá-lo; caso contrário, 409. A chave deve estar ativa e ter sido emitida pela chave de bootstrap, e uma conta não pode ao mesmo tempo manter delegações e ser alvo de uma, de modo que a delegação nunca se encadeia.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
accountIdcaminhostring (uuid)sim—

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
expectedRevisionintegersim0–2147483646
actionsarray de stringsim1–7 itens; sem itens repetidos; cada item: um destes: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
ceilingarray de objectsimaté 16 itens
ceiling[].resourceobjectsim—
ceiling[].resource.kindstringsimum destes: repository
ceiling[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
ceiling[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Resposta 200

CampoTipoObrigatórioRegras
keyIdstring (uuid)sim—
targetAccountIdstring (uuid)sim—
enabledbooleansim—
revisionintegersim1–2147483647
actionsarray de stringsimaté 7 itens; sem itens repetidos; cada item: um destes: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
ceilingarray de objectsimaté 16 itens
ceiling[].resourceobjectsim—
ceiling[].resource.kindstringsimum destes: repository
ceiling[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
ceiling[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X PUT "$ARKVORY_URL/api/v1/api-keys/$ID/delegations/$ACCOUNTID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"actions":["service-account.read"],"ceiling":[]}'

Retirar uma delegação ​

DELETE /api/v1/api-keys/{id}/delegations/{accountId}

Acesso: Chave de bootstrap (chave de recuperação da instalação) · Repetição: Repetir somente com a revisão esperada (compare-and-swap)

Desativa a delegação da chave id sobre accountId; o corpo JSON traz expectedRevision, a revisão atual do registro. O registro permanece como uma entrada desativada, sem ações e com uma revisão maior, retornada com 200; após uma resposta perdida, leia-o com listServiceDelegations em vez de repetir, pois a revisão antiga gera 409. As chaves que o delegado já emitiu e ativou continuam funcionando: revogue-as ou desative a conta separadamente.

Parâmetros

NomeLocalTipoObrigatórioRegras
idcaminhostring (uuid)sim—
accountIdcaminhostring (uuid)sim—

Corpo da solicitação (application/json)

CampoTipoObrigatórioRegras
expectedRevisionintegersim1–2147483646

Resposta 200

CampoTipoObrigatórioRegras
keyIdstring (uuid)sim—
targetAccountIdstring (uuid)sim—
enabledbooleansim—
revisionintegersim1–2147483647
actionsarray de stringsimaté 7 itens; sem itens repetidos; cada item: um destes: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read
ceilingarray de objectsimaté 16 itens
ceiling[].resourceobjectsim—
ceiling[].resource.kindstringsimum destes: repository
ceiling[].resource.idstringsimcorresponde a ^[a-z0-9][a-z0-9_-]{0,63}$
ceiling[].actionsarray de stringsim1–24 itens; sem itens repetidos; cada item: um destes: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read

Respostas: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Exemplo

bash
curl -X DELETE "$ARKVORY_URL/api/v1/api-keys/$ID/delegations/$ACCOUNTID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1}'

Arkvory · ProAnimaStudio