시크릿
시크릿 카테고리의 API 작업 3개를 다룹니다.
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /v1/orgs/{orgSlug}/projects/{projectName}/secrets | 시크릿 이름과 버전 목록입니다(runlot secret list) |
| PUT | /v1/orgs/{orgSlug}/projects/{projectName}/secrets/{secretName} | 시크릿을 생성하거나 업데이트합니다(runlot secret set) |
| DELETE | /v1/orgs/{orgSlug}/projects/{projectName}/secrets/{secretName} | 시크릿을 삭제합니다(runlot secret delete) |
GET /v1/orgs/{orgSlug}/projects/{projectName}/secrets
값은 어떤 응답에도 포함되지 않습니다. 값이 runlot을 벗어나는 유일한 경로는 워커의 env.<NAME>을 통해서입니다. member 이상의 권한이 필요합니다.
operationId listSecrets
| 상태 코드 | 설명 | 응답 본문 |
|---|---|---|
| 200 | 목록 조회 | SecretList |
| 403 | — | — |
| 404 | — | — |
PUT /v1/orgs/{orgSlug}/projects/{projectName}/secrets/{secretName}
이는 멱등적이지 않습니다 — 호출할 때마다 version이 증가합니다. 곧이어 실행 중인 워커는 배포와 동일한 경로를 통해 다운타임 없이 새 환경으로 교체됩니다. 재배포가 필요하지 않습니다.
값은 암호화되어 저장되며 반환되지 않습니다. secret.set 감사 이벤트에는 이름만 기록됩니다.
member 이상의 권한이 필요합니다.
operationId setSecret
요청 본문: application/json · object
| 상태 코드 | 설명 | 응답 본문 |
|---|---|---|
| 200 | 저장된 이름과 버전입니다 | SecretMeta |
| 400 | 이름이 규칙을 따르지 않거나(bad_request) 예약된 이름입니다(reserved_name: DB, ASSETS, RUNLOT_* — env.db와 env.assets 바인딩의 대문자 버전, 그리고 노드 접두사) | Error |
| 403 | — | — |
| 404 | — | — |
DELETE /v1/orgs/{orgSlug}/projects/{projectName}/secrets/{secretName}
존재하지 않는 이름은 404를 반환합니다 — 아무것도 삭제하지 않으면서 삭제되었다고 주장하는 응답은 없습니다. member 이상의 권한이 필요합니다. secret.delete로 감사됩니다.
operationId deleteSecret
| 상태 코드 | 설명 | 응답 본문 |
|---|---|---|
| 204 | 삭제됨 | — |
| 403 | — | — |
| 404 | — | — |