fix: 오류 수정

This commit is contained in:
DongHyeonka
2026-08-22 14:40:49 +09:00
parent 1801414592
commit c03b0c77b8
23 changed files with 644 additions and 112 deletions
@@ -1,7 +1,7 @@
{
"packageId": "@tech-log/public-contract",
"version": "2.0.0",
"digest": "sha256:6575a09317a1ffe951747b12102ad2cf884110007426a45d6f59a53b65612d59",
"version": "2.1.0",
"digest": "sha256:37e6f804165de3e492e975075bea563ee41ae74076222a3562d3452631bfdb2b",
"sourceRevision": "b195b29",
"operationIds": [
"getPublicSite",
@@ -373,6 +373,30 @@ export interface components {
height?: number;
contentType?: string;
};
/** @description 본문이 `:::evidence key="..."` 로 가리키는 Asset 이다.
*
* 본문은 Markdown 원문으로 나가고 그 안에는 key 만 있는데, `/media/{assetId}` 는 UUID
* 로만 서빙한다 — 주소가 추측 불가능한 것이 의도된 성질이므로 key 에서 주소를 만들 수
* 없다. 그래서 공개 화면이 key 를 해석할 수 있도록, 게시된 기록이 실제로 참조하는 Asset 을
* 함께 준다.
*
* 목록은 게시 시점에 고정된 `PUBLISHED` scope 의 참조에서 온다. 게시 이후 작업본이 Asset
* 을 바꿔도 이미 공개된 본문이 가리키는 대상은 달라지지 않는다.
* */
BodyAsset: {
assetKey: string;
/** Format: uuid */
assetId: string;
url: string;
contentType: string;
altText?: string;
width?: number;
height?: number;
/** @description 장식용이면 대체 텍스트가 비어 있어도 된다. 게시 검증이 이 값으로 판정하므로 공개
* 화면도 같은 값을 보고 `alt` 를 정해야 판정과 표시가 어긋나지 않는다.
* */
decorative: boolean;
};
RelatedEntry: {
/** @enum {string} */
type: "CASE" | "REFERENCE" | "QUESTION" | "PROJECT" | "PROJECT_DECISION" | "RELEASE";
@@ -523,6 +547,10 @@ export interface components {
tags: components["schemas"]["TagSummary"][];
primaryProject?: components["schemas"]["ProjectSummary"];
coverAsset?: components["schemas"]["AssetReference"];
/** @description 본문이 참조하는 Asset. 비어 있을 수 있다 — 본문에 evidence 가 없거나, 참조한
* Asset 이 더 이상 서빙되지 않는 경우다.
* */
bodyAssets?: components["schemas"]["BodyAsset"][];
/** Format: date-time */
publishedAt: string;
/** Format: date-time */
@@ -1,7 +1,7 @@
openapi: 3.1.0
info:
title: Tech Log Public API
version: 2.0.0
version: 2.1.0
description: |
Tech Log 공개 조회 계약이다. 인증이 필요하지 않다.
@@ -815,6 +815,47 @@ components:
type: integer
contentType:
type: string
BodyAsset:
type: object
description: |
본문이 `:::evidence key="..."` 로 가리키는 Asset 이다.
본문은 Markdown 원문으로 나가고 그 안에는 key 만 있는데, `/media/{assetId}` 는 UUID
로만 서빙한다 — 주소가 추측 불가능한 것이 의도된 성질이므로 key 에서 주소를 만들 수
없다. 그래서 공개 화면이 key 를 해석할 수 있도록, 게시된 기록이 실제로 참조하는 Asset 을
함께 준다.
목록은 게시 시점에 고정된 `PUBLISHED` scope 의 참조에서 온다. 게시 이후 작업본이 Asset
을 바꿔도 이미 공개된 본문이 가리키는 대상은 달라지지 않는다.
required:
- assetKey
- assetId
- url
- contentType
- decorative
properties:
assetKey:
type: string
minLength: 1
maxLength: 200
assetId:
type: string
format: uuid
url:
type: string
contentType:
type: string
altText:
type: string
width:
type: integer
height:
type: integer
decorative:
type: boolean
description: |
장식용이면 대체 텍스트가 비어 있어도 된다. 게시 검증이 이 값으로 판정하므로 공개
화면도 같은 값을 보고 `alt` 를 정해야 판정과 표시가 어긋나지 않는다.
RelatedEntry:
type: object
required:
@@ -1224,6 +1265,13 @@ components:
$ref: '#/components/schemas/ProjectSummary'
coverAsset:
$ref: '#/components/schemas/AssetReference'
bodyAssets:
type: array
description: |
본문이 참조하는 Asset. 비어 있을 수 있다 — 본문에 evidence 가 없거나, 참조한
Asset 이 더 이상 서빙되지 않는 경우다.
items:
$ref: '#/components/schemas/BodyAsset'
publishedAt: *id003
updatedAt: *id003
lastVerifiedAt: *id003