이 페이지는 공개 계약에서 생성하며 설명은 원문(한국어) 그대로 표시합니다.
Redis Key Pattern 정의·이동.
Database 소속 Key Pattern 전체 목록#
GET /api/databases/{database_id}/key-patterns
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
database_id | path | string | 예 | 소속 Database ID. |
응답
| 상태 | 설명 |
|---|---|
200 | Database 소속 KeyPattern 전체 목록 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다. |
404 | DATABASE_NOT_FOUND |
409 | DATABASE_ENGINE_MISMATCH 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
500 | INTERNAL_ERROR |
200 응답 본문
배열(KeyPattern[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
database_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinition | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
external_references | ExternalReference[] | 예 | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Database 소속 Key Pattern 생성#
POST /api/databases/{database_id}/key-patterns
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
database_id | path | string | 예 | 소속 Database ID. |
Origin | header | string | 아니요 | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
요청 본문
application/json · 필수: 예
타입: KeyPatternCreate
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 아니요 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 아니요 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinitionInput | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
external_references | ExternalReference[] | 아니요 | 생략하면 빈 배열로 저장합니다. |
응답
| 상태 | 설명 |
|---|---|
201 | Database 소속 KeyPattern 생성 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | DATABASE_NOT_FOUND |
409 | 부모 engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
500 | INTERNAL_ERROR |
201 응답 본문
타입: KeyPattern
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
database_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinition | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
external_references | ExternalReference[] | 예 | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Key Pattern 상세#
GET /api/key-patterns/{id}
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | 리소스 ID. |
If-None-Match | header | string | 아니요 | 상세 GET에서 약한 비교. 강한/약한 목록·별표 허용. 일치 304. 미존재 404 우선. 목록과 다른 Method에서는 무시합니다. |
응답
| 상태 | 설명 |
|---|---|
200 | KeyPattern 상세 |
304 | 조건 일치. 본문·Content-Type 없음. |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다. |
404 | KEY_PATTERN_NOT_FOUND |
409 | ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
500 | INTERNAL_ERROR |
200 응답 본문
타입: KeyPattern
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
database_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinition | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
external_references | ExternalReference[] | 예 | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Key Pattern 전체 수정·Database 이동#
PUT /api/key-patterns/{id}
Key Pattern 존재·If-Match를 먼저 검사하고 목적지 redis 부모·정확한 template 중복을 검사합니다. 같은 redis의 mode·db_index가 달라도 이동 가능하며 ID·created_at을 유지하고 전체 원자적으로 저장합니다. template 참조·실제 키를 자동 변경하지 않습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | 리소스 ID. |
If-Match | header | string | 예 | 상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다. |
Origin | header | string | 아니요 | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
요청 본문
application/json · 필수: 예
타입: KeyPatternUpdate
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
database_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinitionInput | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
external_references | ExternalReference[] | 아니요 | 생략하면 저장된 값을 보존하고 []는 전체 해제입니다. |
응답
| 상태 | 설명 |
|---|---|
200 | KeyPattern 전체 수정·Database 이동 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | KEY_PATTERN_NOT_FOUND |
409 | 대상 Database·engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
412 | PRECONDITION_FAILED |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
200 응답 본문
타입: KeyPattern
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
database_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinition | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
external_references | ExternalReference[] | 예 | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Key Pattern 삭제#
DELETE /api/key-patterns/{id}
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | 리소스 ID. |
If-Match | header | string | 예 | 상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다. |
Origin | header | string | 아니요 | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
응답
| 상태 | 설명 |
|---|---|
204 | KeyPattern 삭제 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | KEY_PATTERN_NOT_FOUND |
409 | 연결 Service가 있어 Key Pattern을 삭제할 수 없습니다. 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
412 | PRECONDITION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
KeyPattern 생성 후보 사전 검증#
POST /api/databases/{database_id}/key-patterns/validate
실제 저장과 같은 본문·인증·검사 순서를 사용하며 저장하지 않습니다. 성공은 관찰 시점의 유효성으로 저장 성공·ID 예약·충돌 방지를 보장하지 않습니다. ETag·Location은 반환하지 않습니다. 검증 성공 전후 Catalog·자식 데이터·revision·updated_at은 유지되며, SELECT FOR UPDATE 잠금이 발생할 수 있습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
database_id | path | string | 예 | 소속 Database ID. |
Origin | header | string | 아니요 | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
요청 본문
application/json · 필수: 예
타입: KeyPatternCreate
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 아니요 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 아니요 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinitionInput | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
external_references | ExternalReference[] | 아니요 | 생략하면 빈 배열로 저장합니다. |
응답
| 상태 | 설명 |
|---|---|
200 | 저장 없는 검증 성공 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | DATABASE_NOT_FOUND |
409 | 부모 engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
500 | INTERNAL_ERROR |
200 응답 본문
타입: ValidationResult
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
valid | true | 예 | |
operation | string | 예 | 값: create, update |
KeyPattern 수정 후보 사전 검증#
PUT /api/key-patterns/{id}/validate
실제 저장과 같은 본문·인증·검사 순서를 사용하며 저장하지 않습니다. 성공은 관찰 시점의 유효성으로 저장 성공·ID 예약·충돌 방지를 보장하지 않습니다. ETag·Location은 반환하지 않습니다. 검증 성공 전후 Catalog·자식 데이터·revision·updated_at은 유지되며, SELECT FOR UPDATE 잠금이 발생할 수 있습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | 리소스 ID. |
If-Match | header | string | 예 | 상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다. |
Origin | header | string | 아니요 | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
요청 본문
application/json · 필수: 예
타입: KeyPatternUpdate
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
database_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
template | Template | 예 | 앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
definition | KeyPatternDefinitionInput | 예 | 고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음. |
external_references | ExternalReference[] | 아니요 | 생략하면 저장된 값을 보존하고 []는 전체 해제입니다. |
응답
| 상태 | 설명 |
|---|---|
200 | 저장 없는 검증 성공 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | KEY_PATTERN_NOT_FOUND |
409 | 대상 Database·engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
412 | PRECONDITION_FAILED |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
200 응답 본문
타입: ValidationResult
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
valid | true | 예 | |
operation | string | 예 | 값: create, update |