- 建立 pnpm workspace + Turborepo 单仓、ESLint 9/Prettier/commitlint/husky 门禁 - NestJS + Fastify API:统一错误体、trace_id、Zod 管道、/health 真实依赖探活、OpenAPI 3.1 契约 - Prisma 基线:outbox_events/idempotency_keys/system_configs 与首版迁移、幂等种子 - shared 契约包:错误码、权限点、ULID、游标分页、命名/时间工具 - ui 包与 Web 壳层:Semi + Remix 图标统一出口、Cloud Blue 视觉、登录/工作台/错误页 - worker 骨架、Playwright 冒烟、Gitea CI、OpenAPI 快照与 oasdiff 回退脚本 - 补充 A0 实施报告与本地开发说明
This commit is contained in:
1 parent
9c3ab9768a
commit
04f49690f4
155 files changed
+18402
-28
No files matched your search
@@ -0,0 +1,60 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "outbox_events" (
|
||||
"id" CHAR(26) NOT NULL,
|
||||
"aggregate_type" VARCHAR(64) NOT NULL,
|
||||
"aggregate_id" CHAR(26) NOT NULL,
|
||||
"event_type" VARCHAR(128) NOT NULL,
|
||||
"payload_json" JSONB NOT NULL,
|
||||
"trace_id" VARCHAR(64),
|
||||
"occurred_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"published_at" TIMESTAMPTZ(3),
|
||||
"attempts" INTEGER NOT NULL DEFAULT 0,
|
||||
"last_error" TEXT,
|
||||
|
||||
CONSTRAINT "outbox_events_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "idempotency_keys" (
|
||||
"id" CHAR(26) NOT NULL,
|
||||
"scope" VARCHAR(64) NOT NULL,
|
||||
"key" VARCHAR(128) NOT NULL,
|
||||
"request_hash" VARCHAR(64) NOT NULL,
|
||||
"response_status" INTEGER,
|
||||
"response_body" JSONB,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"expires_at" TIMESTAMPTZ(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "idempotency_keys_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "system_configs" (
|
||||
"id" CHAR(26) NOT NULL,
|
||||
"config_key" VARCHAR(128) NOT NULL,
|
||||
"config_value" JSONB NOT NULL,
|
||||
"value_type" VARCHAR(16) NOT NULL,
|
||||
"description" VARCHAR(255) NOT NULL DEFAULT '',
|
||||
"version" INTEGER NOT NULL DEFAULT 1,
|
||||
"is_editable" BOOLEAN NOT NULL DEFAULT true,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMPTZ(3) NOT NULL,
|
||||
"updated_by" CHAR(26),
|
||||
|
||||
CONSTRAINT "system_configs_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "outbox_events_published_at_occurred_at_idx" ON "outbox_events"("published_at", "occurred_at");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "outbox_events_aggregate_type_aggregate_id_idx" ON "outbox_events"("aggregate_type", "aggregate_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idempotency_keys_expires_at_idx" ON "idempotency_keys"("expires_at");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "idempotency_keys_scope_key_key" ON "idempotency_keys"("scope", "key");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "system_configs_config_key_key" ON "system_configs"("config_key");
|
||||
Reference in new issue
Block a user