This page is generated from the public contract. Descriptions are shown in the original Korean.
engine별 Database Metadata와 전체 소속 구조 요약.
Database 전체 목록#
GET /api/databases
등록 순 전체 Database 객체 배열. 모든 응답에 세 옵션 필드를 포함하고 해당 engine 외 옵션은 null. 목록 ETag 없음.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
handle | query | string | No | handle 정확 일치 필터. 앞뒤 공백 제거·소문자 정규화 후 비교하며 형식이 맞지 않으면 400 INVALID_REQUEST입니다. 이 목록은 handle 외 query를 허용하지 않습니다. 결과는 최대 1건입니다. |
Responses
| Status | Description |
|---|---|
200 | Database 전체 목록 |
400 | INVALID_REQUEST |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다. |
409 | ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
500 | INTERNAL_ERROR |
200 response body
An array (Database[]). The table lists item fields.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | Yes | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
created_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
name | StoredIdentifier | Yes | 앞뒤 U+0020을 제거한 1..200 code point 저장 문자열. 제어 문자 금지. 대소문자·Unicode 정규화 없음. |
engine | string | Yes | Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptionsResponse | null | Yes | |
cassandra_options | CassandraOptions | null | Yes | |
relational_options | RelationalOptions | null | Yes | |
external_references | ExternalReference[] | Yes | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Database 생성#
POST /api/databases
다섯 RDB는 relational_options 객체필수, 다른 세 engine은 생략/null. 옵션 조합은 engine별 서비스/스키마 검증.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Origin | header | string | No | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
Request body
application/json · Required: Yes
Type: DatabaseCreate
| Name | Type | Required | Description |
|---|---|---|---|
handle | string | Yes | 필수. 앞뒤 공백 제거·소문자 정규화 후 3~39자의 영문 소문자·숫자·단일 하이픈만 허용하며 정규화한 값을 저장합니다. structures는 예약어라 쓸 수 없습니다. 같은 Organization의 같은 Catalog에서 이미 사용 중이면 409 HANDLE_CONFLICT, 형식 오류는 422 VALIDATION_FAILED(오류 field handle, code invalid_format)입니다. |
name | string | Yes | 앞뒤 U+0020 제거 후 1..200 Unicode code point. 제어 문자 금지. 정규화 전 입력 길이/빈 값은 서비스에서 검사합니다. |
engine | string | Yes | Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
summary | string | No | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | No | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptions | null | No | |
cassandra_options | CassandraOptionsInput | null | No | |
relational_options | RelationalOptionsInput | null | No | |
external_references | ExternalReference[] | No | 생략하면 빈 배열로 저장합니다. |
Responses
| Status | Description |
|---|---|
201 | Database 생성 |
400 | INVALID_REQUEST |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
409 | ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
500 | INTERNAL_ERROR |
201 response body
Type: Database
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | Yes | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
created_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
name | StoredIdentifier | Yes | 앞뒤 U+0020을 제거한 1..200 code point 저장 문자열. 제어 문자 금지. 대소문자·Unicode 정규화 없음. |
engine | string | Yes | Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptionsResponse | null | Yes | |
cassandra_options | CassandraOptions | null | Yes | |
relational_options | RelationalOptions | null | Yes | |
external_references | ExternalReference[] | Yes | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Database 상세#
GET /api/databases/{id}
구현 후 모든 Database json4. 이전 토큰은 일치하지 않는다.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | 리소스 ID. |
If-None-Match | header | string | No | 상세 GET에서 약한 비교. 강한/약한 목록·별표 허용. 일치 304. 미존재 404 우선. 목록과 다른 Method에서는 무시합니다. |
Responses
| Status | Description |
|---|---|
200 | Database 상세 |
304 | 조건 일치. 본문·Content-Type 없음. |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다. |
404 | DATABASE_NOT_FOUND |
409 | ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
500 | INTERNAL_ERROR |
200 response body
Type: Database
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | Yes | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
created_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
name | StoredIdentifier | Yes | 앞뒤 U+0020을 제거한 1..200 code point 저장 문자열. 제어 문자 금지. 대소문자·Unicode 정규화 없음. |
engine | string | Yes | Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptionsResponse | null | Yes | |
cassandra_options | CassandraOptions | null | Yes | |
relational_options | RelationalOptions | null | Yes | |
external_references | ExternalReference[] | Yes | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Database Metadata 전체 수정#
PUT /api/databases/{id}
name·description 필수, engine 선택적(생략 시 현재 값). 요청/현재 engine의 옵션 조합은 서비스 검증. RDB 내부 변경만 허용하며 조건 확인 뒤 모든 저장 Table 대상 규칙과 제품군 제한을 검사한다. 비호환은409·전체 rollback. 성공 시 부모·소속 Table 토큰/시각 변경.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | 리소스 ID. |
If-Match | header | string | Yes | 상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다. |
Origin | header | string | No | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
Request body
application/json · Required: Yes
Type: DatabaseUpdate
| Name | Type | Required | Description |
|---|---|---|---|
handle | string | No | 선택. 생략하면 저장된 값을 유지합니다. 앞뒤 공백 제거·소문자 정규화 후 3~39자의 영문 소문자·숫자·단일 하이픈만 허용하며 정규화한 값을 저장합니다. structures는 예약어라 쓸 수 없습니다. 같은 Organization의 같은 Catalog에서 이미 사용 중이면 409 HANDLE_CONFLICT, 형식 오류는 422 VALIDATION_FAILED(오류 field handle, code invalid_format)입니다. |
name | string | Yes | 앞뒤 U+0020 제거 후 1..200 Unicode code point. 제어 문자 금지. 정규화 전 입력 길이/빈 값은 서비스에서 검사합니다. |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptions | null | No | |
cassandra_options | CassandraOptionsInput | null | No | |
relational_options | RelationalOptionsInput | null | No | |
engine | string | No | 선택적. 생략 시 저장 engine. 변경은 RDB 안에서만. 부모·모든 소속 Table 잠금 아래 검증한다. Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
external_references | ExternalReference[] | No | 생략하면 저장된 값을 보존하고 []는 전체 해제입니다. |
Responses
| Status | Description |
|---|---|
200 | Database Metadata 전체 수정 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | DATABASE_NOT_FOUND |
409 | RDB 밖 제품군 변경 또는 저장 Table의 대상 제품 비호환. If-Match 확인 뒤 평가하며 전체 rollback. 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
412 | PRECONDITION_FAILED |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
200 response body
Type: Database
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | Yes | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
created_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
name | StoredIdentifier | Yes | 앞뒤 U+0020을 제거한 1..200 code point 저장 문자열. 제어 문자 금지. 대소문자·Unicode 정규화 없음. |
engine | string | Yes | Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptionsResponse | null | Yes | |
cassandra_options | CassandraOptions | null | Yes | |
relational_options | RelationalOptions | null | Yes | |
external_references | ExternalReference[] | Yes | 코드·외부 문서 출처 목록입니다. 입력 순서를 보존합니다. |
Database 삭제#
DELETE /api/databases/{id}
부모 잠금 아래 네 종류 자식 존재 확인. 자식 존재409가 조건 누락428/불일치412보다 우선. 자동 cascade없음.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | 리소스 ID. |
If-Match | header | string | Yes | 상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다. |
Origin | header | string | No | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
Responses
| Status | Description |
|---|---|
204 | Database 삭제 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | DATABASE_NOT_FOUND |
409 | 소속 Table·Collection·Key Pattern·관계형 Table이 있어 Database를 삭제할 수 없습니다. 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
412 | PRECONDITION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
Database 소속 구조 요약 목록#
GET /api/database-structures
현재 Organization의 모든 Database 소속 Table·Collection·Key Pattern·Cassandra Table을 한 번에 요약합니다. definition과 목록 ETag는 생략하며 소속 구조가 없으면 200 []입니다. 순서는 Database 등록 순(created_at·id) 안에서 구조 등록 순(created_at·id)입니다. kind별 상세·쓰기는 기존 경로를 사용합니다.
Authentication: Session cookie or Agent token
Responses
| Status | Description |
|---|---|
200 | Database 소속 구조 요약 목록 |
400 | INVALID_REQUEST |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | ORGANIZATION_UNVERIFIED: 현재 Organization 또는 Agent 토큰의 Organization이 인증 대기입니다. |
409 | ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
500 | INTERNAL_ERROR |
200 response body
An array (DatabaseStructure[]). The table lists item fields.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
database_id | string | Yes | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
kind | string | Yes | Values: table, collection, key_pattern, cassandra_table |
namespace | string | Yes | table의 namespace. 다른 kind는 빈 문자열입니다. |
name | string | Yes | 구조 이름. key_pattern은 template입니다. |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
created_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | Yes | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
Database 생성 후보 사전 검증#
POST /api/databases/validate
실제 저장과 같은 본문·인증·검사 순서를 사용하며 저장하지 않습니다. 성공은 관찰 시점의 유효성으로 저장 성공·ID 예약·충돌 방지를 보장하지 않습니다. ETag·Location은 반환하지 않습니다. 검증 성공 전후 Catalog·자식 데이터·revision·updated_at은 유지되며, SELECT FOR UPDATE 잠금이 발생할 수 있습니다.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Origin | header | string | No | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
Request body
application/json · Required: Yes
Type: DatabaseCreate
| Name | Type | Required | Description |
|---|---|---|---|
handle | string | Yes | 필수. 앞뒤 공백 제거·소문자 정규화 후 3~39자의 영문 소문자·숫자·단일 하이픈만 허용하며 정규화한 값을 저장합니다. structures는 예약어라 쓸 수 없습니다. 같은 Organization의 같은 Catalog에서 이미 사용 중이면 409 HANDLE_CONFLICT, 형식 오류는 422 VALIDATION_FAILED(오류 field handle, code invalid_format)입니다. |
name | string | Yes | 앞뒤 U+0020 제거 후 1..200 Unicode code point. 제어 문자 금지. 정규화 전 입력 길이/빈 값은 서비스에서 검사합니다. |
engine | string | Yes | Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
summary | string | No | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | No | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptions | null | No | |
cassandra_options | CassandraOptionsInput | null | No | |
relational_options | RelationalOptionsInput | null | No | |
external_references | ExternalReference[] | No | 생략하면 빈 배열로 저장합니다. |
Responses
| Status | Description |
|---|---|
200 | 저장 없는 검증 성공 |
400 | INVALID_REQUEST |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
409 | ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
500 | INTERNAL_ERROR |
200 response body
Type: ValidationResult
| Name | Type | Required | Description |
|---|---|---|---|
valid | true | Yes | |
operation | string | Yes | Values: create, update |
Database 수정 후보 사전 검증#
PUT /api/databases/{id}/validate
실제 저장과 같은 본문·인증·검사 순서를 사용하며 저장하지 않습니다. 성공은 관찰 시점의 유효성으로 저장 성공·ID 예약·충돌 방지를 보장하지 않습니다. ETag·Location은 반환하지 않습니다. 검증 성공 전후 Catalog·자식 데이터·revision·updated_at은 유지되며, SELECT FOR UPDATE 잠금이 발생할 수 있습니다.
Authentication: Session cookie or Agent token
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | 리소스 ID. |
If-Match | header | string | Yes | 상세 GET의 단일 강한 ETag. 별표·약한/복수 태그는 400. 일반 검사 후 누락 428·불일치 412. 미존재 404·Database 삭제 불가 409 우선. 날짜 조건으로 대체하지 않습니다. |
Origin | header | string | No | 세션 쿠키로 인증한 상태 변경 요청에서 필수이며 서버 origin과 같아야 합니다. Bearer 토큰 요청에는 적용하지 않습니다. |
Request body
application/json · Required: Yes
Type: DatabaseUpdate
| Name | Type | Required | Description |
|---|---|---|---|
handle | string | No | 선택. 생략하면 저장된 값을 유지합니다. 앞뒤 공백 제거·소문자 정규화 후 3~39자의 영문 소문자·숫자·단일 하이픈만 허용하며 정규화한 값을 저장합니다. structures는 예약어라 쓸 수 없습니다. 같은 Organization의 같은 Catalog에서 이미 사용 중이면 409 HANDLE_CONFLICT, 형식 오류는 422 VALIDATION_FAILED(오류 field handle, code invalid_format)입니다. |
name | string | Yes | 앞뒤 U+0020 제거 후 1..200 Unicode code point. 제어 문자 금지. 정규화 전 입력 길이/빈 값은 서비스에서 검사합니다. |
summary | string | Yes | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | Yes | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
redis_options | RedisOptions | null | No | |
cassandra_options | CassandraOptionsInput | null | No | |
relational_options | RelationalOptionsInput | null | No | |
engine | string | No | 선택적. 생략 시 저장 engine. 변경은 RDB 안에서만. 부모·모든 소속 Table 잠금 아래 검증한다. Values: postgresql, mysql, mariadb, oracle, sqlserver, mongodb, redis, cassandra |
external_references | ExternalReference[] | No | 생략하면 저장된 값을 보존하고 []는 전체 해제입니다. |
Responses
| Status | Description |
|---|---|
200 | 저장 없는 검증 성공 |
400 | 잘못된 경로 ID 또는 요청 형식 |
401 | UNAUTHENTICATED: 세션·토큰이 없거나 만료·폐기되었습니다. |
403 | Origin 검사 실패 또는 인증 대기 Organization 사용 거부입니다. |
404 | DATABASE_NOT_FOUND |
409 | RDB 밖 제품군 변경 또는 저장 Table의 대상 제품 비호환. If-Match 확인 뒤 평가하며 전체 rollback. 또는 ORGANIZATION_REQUIRED: 세션에 현재 Organization이 없습니다. |
412 | PRECONDITION_FAILED |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
200 response body
Type: ValidationResult
| Name | Type | Required | Description |
|---|---|---|---|
valid | true | Yes | |
operation | string | Yes | Values: create, update |