Skip to content
Structly Docs
한국어

API reference

Key Pattern

On this page

This page is generated from the public contract. Descriptions are shown in the original Korean.

Redis Key Pattern 정의·이동.

Database 소속 Key Pattern 전체 목록#

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

Authentication: Session cookie or Agent token

Parameters

NameInTypeRequiredDescription
database_idpathstringYes소속 Database ID.

Responses

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

200 response body

An array (KeyPattern[]). The table lists item fields.

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

Database 소속 Key Pattern 생성#

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

Authentication: Session cookie or Agent token

Parameters

NameInTypeRequiredDescription
database_idpathstringYes소속 Database ID.
OriginheaderstringNo세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

Request body

application/json · Required: Yes

Type: KeyPatternCreate

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

Responses

StatusDescription
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 response body

Type: KeyPattern

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

Key Pattern 상세#

GET /api/key-patterns/{id}

Authentication: Session cookie or Agent token

Parameters

NameInTypeRequiredDescription
idpathstringYes리소스 ID.
If-None-MatchheaderstringNo상세 GET에서 약한 비교. 강한/약한 목록·별표 허용. 일치 304. 미존재 404 우선. 목록과 다른 Method에서는 무시합니다.

Responses

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

200 response body

Type: KeyPattern

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

Key Pattern 전체 수정·Database 이동#

PUT /api/key-patterns/{id}

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

Authentication: Session cookie or Agent token

Parameters

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

Request body

application/json · Required: Yes

Type: KeyPatternUpdate

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

Responses

StatusDescription
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 response body

Type: KeyPattern

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

Key Pattern 삭제#

DELETE /api/key-patterns/{id}

Authentication: Session cookie or Agent token

Parameters

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

Responses

StatusDescription
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 잠금이 발생할 수 있습니다.

Authentication: Session cookie or Agent token

Parameters

NameInTypeRequiredDescription
database_idpathstringYes소속 Database ID.
OriginheaderstringNo세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다.

Request body

application/json · Required: Yes

Type: KeyPatternCreate

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

Responses

StatusDescription
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 response body

Type: ValidationResult

NameTypeRequiredDescription
validtrueYes
operationstringYesValues: create, update

KeyPattern 수정 후보 사전 검증#

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

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

Authentication: Session cookie or Agent token

Parameters

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

Request body

application/json · Required: Yes

Type: KeyPatternUpdate

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

Responses

StatusDescription
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 response body

Type: ValidationResult

NameTypeRequiredDescription
validtrueYes
operationstringYesValues: create, update