본문으로 건너뛰기
Structly 문서
English

API 레퍼런스

Key Pattern

이 페이지의 내용

이 페이지는 공개 계약에서 생성하며 설명은 원문(한국어) 그대로 표시합니다.

Redis Key Pattern 정의·이동.

Database 소속 Key Pattern 전체 목록#

GET /api/databases/{database_id}/key-patterns

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
database_idpathstring예소속 Database ID.

응답

상태설명
200Database 소속 KeyPattern 전체 목록
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다.
404DATABASE_NOT_FOUND
409DATABASE_ENGINE_MISMATCH 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
500INTERNAL_ERROR

200 응답 본문

배열(KeyPattern[])이며 표는 항목의 필드입니다.

이름타입필수설명
idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
database_idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring예목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring예공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinition예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
created_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
updated_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
external_referencesExternalReference[]예코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다.

Database 소속 Key Pattern 생성#

POST /api/databases/{database_id}/key-patterns

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
database_idpathstring예소속 Database ID.
Originheaderstring아니요세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

요청 본문

application/json · 필수: 예

타입: KeyPatternCreate

이름타입필수설명
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring아니요목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring아니요공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinitionInput예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
external_referencesExternalReference[]아니요생략하면 빈 배열로 저장합니다.

응답

상태설명
201Database 소속 KeyPattern 생성
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다.
404DATABASE_NOT_FOUND
409부모 engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
413PAYLOAD_TOO_LARGE
415UNSUPPORTED_MEDIA_TYPE
422VALIDATION_FAILED
500INTERNAL_ERROR

201 응답 본문

타입: KeyPattern

이름타입필수설명
idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
database_idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring예목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring예공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinition예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
created_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
updated_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
external_referencesExternalReference[]예코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다.

Key Pattern 상세#

GET /api/key-patterns/{id}

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
idpathstring예리소스 ID.
If-None-Matchheaderstring아니요상세 GET에서 약한 비교. 강한/약한 목록·별표 허용. 일치 304. 미존재 404 우선. 목록과 다른 Method에서는 무시합니다.

응답

상태설명
200KeyPattern 상세
304조건 일치. 본문·Content-Type 없음.
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다.
404KEY_PATTERN_NOT_FOUND
409ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
500INTERNAL_ERROR

200 응답 본문

타입: KeyPattern

이름타입필수설명
idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
database_idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring예목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring예공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinition예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
created_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
updated_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
external_referencesExternalReference[]예코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다.

Key Pattern 전체 수정·Database 이동#

PUT /api/key-patterns/{id}

Key Pattern 존재·If-Match를 먼저 검사하고 목적지 redis 부모·정확한 template 중복을 검사합니다. 같은 redis의 mode·db_index가 달라도 이동 가능하며 ID·created_at을 유지하고 전체 원자적으로 저장합니다. template 참조·실제 키를 자동 변경하지 않습니다.

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
idpathstring예리소스 ID.
If-Matchheaderstring예상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다.
Originheaderstring아니요세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

요청 본문

application/json · 필수: 예

타입: KeyPatternUpdate

이름타입필수설명
database_idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring예목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring예공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinitionInput예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
external_referencesExternalReference[]아니요생략하면 저장된 값을 보존하고 []는 전체 해제입니다.

응답

상태설명
200KeyPattern 전체 수정·Database 이동
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다.
404KEY_PATTERN_NOT_FOUND
409대상 Database·engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
412PRECONDITION_FAILED
413PAYLOAD_TOO_LARGE
415UNSUPPORTED_MEDIA_TYPE
422VALIDATION_FAILED
428PRECONDITION_REQUIRED
500INTERNAL_ERROR

200 응답 본문

타입: KeyPattern

이름타입필수설명
idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
database_idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring예목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring예공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinition예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
created_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
updated_atstring(date-time)예서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다.
external_referencesExternalReference[]예코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다.

Key Pattern 삭제#

DELETE /api/key-patterns/{id}

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
idpathstring예리소스 ID.
If-Matchheaderstring예상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다.
Originheaderstring아니요세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

응답

상태설명
204KeyPattern 삭제
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다.
404KEY_PATTERN_NOT_FOUND
409연결 Service가 있어 Key Pattern을 삭제할 수 없습니다. 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
412PRECONDITION_FAILED
428PRECONDITION_REQUIRED
500INTERNAL_ERROR

KeyPattern 생성 후보 사전 검증#

POST /api/databases/{database_id}/key-patterns/validate

실제 저장과 같은 본문·인증·검사 순서를 사용하며 저장하지 않습니다. 성공은 관찰 시점의 유효성으로 저장 성공·ID 예약·충돌 방지를 보장하지 않습니다. ETag·Location은 반환하지 않습니다. 검증 성공 전후 Catalog·자식 데이터·revision·updated_at은 유지되며, SELECT FOR UPDATE 잠금이 발생할 수 있습니다.

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
database_idpathstring예소속 Database ID.
Originheaderstring아니요세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

요청 본문

application/json · 필수: 예

타입: KeyPatternCreate

이름타입필수설명
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring아니요목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring아니요공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinitionInput예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
external_referencesExternalReference[]아니요생략하면 빈 배열로 저장합니다.

응답

상태설명
200저장 없는 검증 성공
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다.
404DATABASE_NOT_FOUND
409부모 engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
413PAYLOAD_TOO_LARGE
415UNSUPPORTED_MEDIA_TYPE
422VALIDATION_FAILED
500INTERNAL_ERROR

200 응답 본문

타입: ValidationResult

이름타입필수설명
validtrue예
operationstring예값: create, update

KeyPattern 수정 후보 사전 검증#

PUT /api/key-patterns/{id}/validate

실제 저장과 같은 본문·인증·검사 순서를 사용하며 저장하지 않습니다. 성공은 관찰 시점의 유효성으로 저장 성공·ID 예약·충돌 방지를 보장하지 않습니다. ETag·Location은 반환하지 않습니다. 검증 성공 전후 Catalog·자식 데이터·revision·updated_at은 유지되며, SELECT FOR UPDATE 잠금이 발생할 수 있습니다.

인증: 세션 쿠키 또는 Agent 토큰

Parameter

이름위치타입필수설명
idpathstring예리소스 ID.
If-Matchheaderstring예상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다.
Originheaderstring아니요세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

요청 본문

application/json · 필수: 예

타입: KeyPatternUpdate

이름타입필수설명
database_idstring예Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다.
templateTemplate예앞뒤 공백 보존·정확한 template 비교. ${variable}과 $$ 문법, 고유 변수 최대64개. UTF-8 byte 길이와 variables의 정확한 대응은 서비스 검사.
summarystring예목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다.
descriptionstring예공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다.
definitionKeyPatternDefinitionInput예고유 템플릿 변수당 정확한 선언 1개, 미사용/누락/중복 거부. 고정 필드 name 정규화 후 형제 중복 거부. 입력 JSON definition 최대1MiB. 배열 순서 보존·실제 값 없음.
external_referencesExternalReference[]아니요생략하면 저장된 값을 보존하고 []는 전체 해제입니다.

응답

상태설명
200저장 없는 검증 성공
400잘못된 경로 ID 또는 요청 형식
401UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다.
403Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다.
404KEY_PATTERN_NOT_FOUND
409대상 Database·engine·template 충돌 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다.
412PRECONDITION_FAILED
413PAYLOAD_TOO_LARGE
415UNSUPPORTED_MEDIA_TYPE
422VALIDATION_FAILED
428PRECONDITION_REQUIRED
500INTERNAL_ERROR

200 응답 본문

타입: ValidationResult

이름타입필수설명
validtrue예
operationstring예값: create, update