downcity 1.1.414 → 1.1.417
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/federation/create/templates/CloudflareWorkersTemplate.js +1 -26
- package/bin/federation/create/templates/CloudflareWorkersTemplate.js.map +1 -1
- package/bin/federation/create/templates/LocalNodeTemplate.js +2 -15
- package/bin/federation/create/templates/LocalNodeTemplate.js.map +1 -1
- package/bin/federation/deploy/runtime/AdminCredentials.d.ts +14 -0
- package/bin/federation/deploy/runtime/AdminCredentials.d.ts.map +1 -0
- package/bin/federation/deploy/runtime/AdminCredentials.js +74 -0
- package/bin/federation/deploy/runtime/AdminCredentials.js.map +1 -0
- package/bin/federation/deploy/runtime/AdminDatabaseProvisioner.d.ts +21 -0
- package/bin/federation/deploy/runtime/AdminDatabaseProvisioner.d.ts.map +1 -0
- package/bin/federation/deploy/runtime/AdminDatabaseProvisioner.js +216 -0
- package/bin/federation/deploy/runtime/AdminDatabaseProvisioner.js.map +1 -0
- package/bin/federation/deploy/runtime/CloudflareWorkersDeployer.d.ts.map +1 -1
- package/bin/federation/deploy/runtime/CloudflareWorkersDeployer.js +38 -13
- package/bin/federation/deploy/runtime/CloudflareWorkersDeployer.js.map +1 -1
- package/bin/federation/deploy/runtime/CommandRunner.d.ts +2 -0
- package/bin/federation/deploy/runtime/CommandRunner.d.ts.map +1 -1
- package/bin/federation/deploy/runtime/CommandRunner.js +7 -2
- package/bin/federation/deploy/runtime/CommandRunner.js.map +1 -1
- package/bin/federation/deploy/runtime/LocalFederationDeployer.d.ts.map +1 -1
- package/bin/federation/deploy/runtime/LocalFederationDeployer.js +28 -21
- package/bin/federation/deploy/runtime/LocalFederationDeployer.js.map +1 -1
- package/bin/federation/deploy/runtime/WranglerConfigWriter.d.ts +1 -2
- package/bin/federation/deploy/runtime/WranglerConfigWriter.d.ts.map +1 -1
- package/bin/federation/deploy/runtime/WranglerConfigWriter.js +1 -7
- package/bin/federation/deploy/runtime/WranglerConfigWriter.js.map +1 -1
- package/bin/federation/types/FederationAdminDeployment.d.ts +28 -0
- package/bin/federation/types/FederationAdminDeployment.d.ts.map +1 -0
- package/bin/federation/types/FederationAdminDeployment.js +7 -0
- package/bin/federation/types/FederationAdminDeployment.js.map +1 -0
- package/bin/shared/CliProgress.d.ts +10 -0
- package/bin/shared/CliProgress.d.ts.map +1 -0
- package/bin/shared/CliProgress.js +50 -0
- package/bin/shared/CliProgress.js.map +1 -0
- package/bin/shared/CliReporter.d.ts +2 -0
- package/bin/shared/CliReporter.d.ts.map +1 -1
- package/bin/shared/CliReporter.js +4 -0
- package/bin/shared/CliReporter.js.map +1 -1
- package/bin/shared/types/CliProgress.d.ts +15 -0
- package/bin/shared/types/CliProgress.d.ts.map +1 -0
- package/bin/shared/types/CliProgress.js +7 -0
- package/bin/shared/types/CliProgress.js.map +1 -0
- package/package.json +2 -2
- package/bin/federation/deploy/runtime/AdminProvisioning.d.ts +0 -21
- package/bin/federation/deploy/runtime/AdminProvisioning.d.ts.map +0 -1
- package/bin/federation/deploy/runtime/AdminProvisioning.js +0 -57
- package/bin/federation/deploy/runtime/AdminProvisioning.js.map +0 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ fed deploy
|
|
|
21
21
|
fed
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
`fed create` 默认生成 Local Node.js + SQLite 项目。首次 `fed deploy` 会创建管理员 ID 与高强度密码,并只显示一次;请立即保存。遗失密码时,只有拥有目标基础设施部署权限的人可以运行 `fed deploy --admin-reset`,非交互环境还必须显式传入 `--yes
|
|
24
|
+
`fed create` 默认生成 Local Node.js + SQLite 项目。首次 `fed deploy` 会创建管理员 ID 与高强度密码,并只显示一次;请立即保存。遗失密码时,只有拥有目标基础设施部署权限的人可以运行 `fed deploy --admin-reset`,非交互环境还必须显式传入 `--yes`。CLI 通过本地 SQLite 事务或 Wrangler 远程 D1 权限直接完成管理员恢复,不要求 Worker 读取恢复环境变量;普通 deploy 永远不会修改管理员。部署期间会持续显示当前构建、资源准备、Worker 发布、健康检查与管理员验证阶段。无参数执行 `fed` 会进入系统级 Federation 管理面板,已部署实例不依赖当前工作目录。
|
|
25
25
|
|
|
26
26
|
City 的主要命令:
|
|
27
27
|
|
|
@@ -93,7 +93,6 @@ import {
|
|
|
93
93
|
Federation,
|
|
94
94
|
R2Storage,
|
|
95
95
|
type CityQueueMessage,
|
|
96
|
-
type FederationAdminProvisioning,
|
|
97
96
|
} from "@downcity/city";
|
|
98
97
|
import { Database } from "@downcity/database-d1";
|
|
99
98
|
import {
|
|
@@ -114,14 +113,6 @@ export interface Env {
|
|
|
114
113
|
DOWNCITY_QUEUE: Queue<CityQueueMessage>;
|
|
115
114
|
/** R2 文件公开 URL 前缀。 */
|
|
116
115
|
DOWNCITY_STORAGE_PUBLIC_URL_PREFIX?: string;
|
|
117
|
-
/** 可信部署器注入的管理员 provisioning 模式。 */
|
|
118
|
-
DOWNCITY_FEDERATION_ADMIN_PROVISION_MODE?: string;
|
|
119
|
-
/** 管理员 provisioning 幂等 ID。 */
|
|
120
|
-
DOWNCITY_FEDERATION_ADMIN_PROVISION_ID?: string;
|
|
121
|
-
/** 初始化或恢复后的管理员 ID。 */
|
|
122
|
-
DOWNCITY_FEDERATION_ADMIN_ID?: string;
|
|
123
|
-
/** 管理员密码的 PBKDF2 编码摘要。 */
|
|
124
|
-
DOWNCITY_FEDERATION_ADMIN_PASSWORD_HASH?: string;
|
|
125
116
|
}
|
|
126
117
|
|
|
127
118
|
let federation_promise: Promise<Federation> | undefined;
|
|
@@ -129,10 +120,7 @@ let federation_promise: Promise<Federation> | undefined;
|
|
|
129
120
|
/** 创建并初始化当前 Worker isolate 使用的 Federation。 */
|
|
130
121
|
async function create_federation(env: Env): Promise<Federation> {
|
|
131
122
|
const database = new Database({ binding: env.DB });
|
|
132
|
-
const federation = new Federation({
|
|
133
|
-
database,
|
|
134
|
-
admin_provisioning: read_admin_provisioning(env),
|
|
135
|
-
});
|
|
123
|
+
const federation = new Federation({ database });
|
|
136
124
|
federation.queue.use({
|
|
137
125
|
send: (message) => env.DOWNCITY_QUEUE.send(message, message.delay_ms
|
|
138
126
|
? { delaySeconds: Math.ceil(message.delay_ms / 1000) }
|
|
@@ -166,19 +154,6 @@ async function create_federation(env: Env): Promise<Federation> {
|
|
|
166
154
|
return federation;
|
|
167
155
|
}
|
|
168
156
|
|
|
169
|
-
/** 读取仅由 fed deploy 注入的无明文管理员 provisioning。 */
|
|
170
|
-
function read_admin_provisioning(env: Env): FederationAdminProvisioning | undefined {
|
|
171
|
-
const mode = env.DOWNCITY_FEDERATION_ADMIN_PROVISION_MODE?.trim();
|
|
172
|
-
const provision_id = env.DOWNCITY_FEDERATION_ADMIN_PROVISION_ID?.trim();
|
|
173
|
-
const admin_id = env.DOWNCITY_FEDERATION_ADMIN_ID?.trim();
|
|
174
|
-
const password_hash = env.DOWNCITY_FEDERATION_ADMIN_PASSWORD_HASH?.trim();
|
|
175
|
-
if (!mode && !provision_id && !admin_id && !password_hash) return undefined;
|
|
176
|
-
if ((mode !== "initialize" && mode !== "reset") || !provision_id || !admin_id || !password_hash) {
|
|
177
|
-
throw new Error("Incomplete Federation administrator provisioning environment.");
|
|
178
|
-
}
|
|
179
|
-
return { mode, provision_id, admin_id, password_hash };
|
|
180
|
-
}
|
|
181
|
-
|
|
182
157
|
/** 读取当前 Worker isolate 的 Federation。 */
|
|
183
158
|
function get_federation(env: Env): Promise<Federation> {
|
|
184
159
|
federation_promise ??= create_federation(env);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudflareWorkersTemplate.js","sourceRoot":"","sources":["../../../../src/federation/create/templates/CloudflareWorkersTemplate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,kCAAkC;AAClC,MAAM,UAAU,wCAAwC,CACtD,KAA8B;IAE9B,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO;QACL;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,SAAS,CAAC;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK,CAAC,MAAM;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,cAAc;gBACrB,UAAU,EAAE;oBACV,MAAM,EAAE,oBAAoB;oBAC5B,SAAS,EAAE;wBACT,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,EAAE;wBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,QAAQ,EAAE;wBAChF,OAAO,EAAE;4BACP,IAAI,EAAE,IAAI;4BACV,OAAO,EAAE,kBAAkB;4BAC3B,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,UAAU;4BAC7B,iBAAiB,EAAE,EAAE;yBACtB;qBACF;iBACF;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,SAAS,CAAC;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,SAAS,EAAE,+BAA+B;iBAC3C;gBACD,YAAY,EAAE;oBACZ,gBAAgB,EAAE,QAAQ;oBAC1B,uBAAuB,EAAE,QAAQ;oBACjC,oBAAoB,EAAE,QAAQ;iBAC/B;gBACD,eAAe,EAAE;oBACf,2BAA2B,EAAE,QAAQ;oBACrC,UAAU,EAAE,QAAQ;oBACpB,QAAQ,EAAE,QAAQ;iBACnB;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,SAAS,CAAC;gBACjB,eAAe,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,UAAU;oBAClB,gBAAgB,EAAE,UAAU;oBAC5B,GAAG,EAAE,CAAC,QAAQ,CAAC;oBACf,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE,CAAC,2BAA2B,CAAC;iBACrC;gBACD,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB,CAAC;SACH;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAChE;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,wBAAwB,EAAE;SACpC;KACF,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,SAAS,wBAAwB;IAC/B,OAAO
|
|
1
|
+
{"version":3,"file":"CloudflareWorkersTemplate.js","sourceRoot":"","sources":["../../../../src/federation/create/templates/CloudflareWorkersTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,7 +96,7 @@ function create_local_entrypoint() {
|
|
|
96
96
|
*/
|
|
97
97
|
|
|
98
98
|
import { serve } from "@hono/node-server";
|
|
99
|
-
import { AIService, Federation
|
|
99
|
+
import { AIService, Federation } from "@downcity/city";
|
|
100
100
|
import { Database } from "@downcity/database-sqlite";
|
|
101
101
|
import {
|
|
102
102
|
AccountsService,
|
|
@@ -115,19 +115,6 @@ function resolve_sqlite_path(database_url: string | undefined): string {
|
|
|
115
115
|
return sqlite_path;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
/** 读取仅由 fed deploy 注入的无明文管理员 provisioning。 */
|
|
119
|
-
function read_admin_provisioning(): FederationAdminProvisioning | undefined {
|
|
120
|
-
const mode = process.env.DOWNCITY_FEDERATION_ADMIN_PROVISION_MODE?.trim();
|
|
121
|
-
const provision_id = process.env.DOWNCITY_FEDERATION_ADMIN_PROVISION_ID?.trim();
|
|
122
|
-
const admin_id = process.env.DOWNCITY_FEDERATION_ADMIN_ID?.trim();
|
|
123
|
-
const password_hash = process.env.DOWNCITY_FEDERATION_ADMIN_PASSWORD_HASH?.trim();
|
|
124
|
-
if (!mode && !provision_id && !admin_id && !password_hash) return undefined;
|
|
125
|
-
if ((mode !== "initialize" && mode !== "reset") || !provision_id || !admin_id || !password_hash) {
|
|
126
|
-
throw new Error("Incomplete Federation administrator provisioning environment.");
|
|
127
|
-
}
|
|
128
|
-
return { mode, provision_id, admin_id, password_hash };
|
|
129
|
-
}
|
|
130
|
-
|
|
131
118
|
const host = process.env.HOST?.trim() || "127.0.0.1";
|
|
132
119
|
const port = Number.parseInt(process.env.PORT || "12314", 10);
|
|
133
120
|
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
@@ -137,7 +124,7 @@ if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
|
137
124
|
const database = new Database({
|
|
138
125
|
filename: resolve_sqlite_path(process.env.DOWNCITY_FEDERATION_DATABASE_URL),
|
|
139
126
|
});
|
|
140
|
-
const federation = new Federation({ database
|
|
127
|
+
const federation = new Federation({ database });
|
|
141
128
|
|
|
142
129
|
const accounts_service = new AccountsService({ local_login: true });
|
|
143
130
|
federation.use(accounts_service);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalNodeTemplate.js","sourceRoot":"","sources":["../../../../src/federation/create/templates/LocalNodeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,6BAA6B;AAC7B,MAAM,UAAU,gCAAgC,CAC9C,KAA8B;IAE9B,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO;QACL;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,SAAS,CAAC;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK,CAAC,MAAM;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,cAAc;gBACrB,UAAU,EAAE;oBACV,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,SAAS,CAAC;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,0DAA0D;oBAC/D,KAAK,EAAE,0DAA0D;oBACjE,SAAS,EAAE,+BAA+B;iBAC3C;gBACD,YAAY,EAAE;oBACZ,gBAAgB,EAAE,QAAQ;oBAC1B,2BAA2B,EAAE,QAAQ;oBACrC,oBAAoB,EAAE,QAAQ;oBAC9B,mBAAmB,EAAE,QAAQ;iBAC9B;gBACD,eAAe,EAAE;oBACf,aAAa,EAAE,QAAQ;oBACvB,GAAG,EAAE,QAAQ;oBACb,UAAU,EAAE,QAAQ;iBACrB;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,SAAS,CAAC;gBACjB,eAAe,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,UAAU;oBAClB,gBAAgB,EAAE,UAAU;oBAC5B,GAAG,EAAE,CAAC,QAAQ,CAAC;oBACf,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE,CAAC,MAAM,CAAC;iBAChB;gBACD,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB,CAAC;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,sCAAsC;gBACtC,qDAAqD;gBACrD,gBAAgB;gBAChB,iDAAiD;gBACjD,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAClF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,uBAAuB,EAAE;SACnC;KACF,CAAC;AACJ,CAAC;AAED,4BAA4B;AAC5B,SAAS,uBAAuB;IAC9B,OAAO
|
|
1
|
+
{"version":3,"file":"LocalNodeTemplate.js","sourceRoot":"","sources":["../../../../src/federation/create/templates/LocalNodeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,6BAA6B;AAC7B,MAAM,UAAU,gCAAgC,CAC9C,KAA8B;IAE9B,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO;QACL;YACE,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,SAAS,CAAC;gBACjB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK,CAAC,MAAM;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,cAAc;gBACrB,UAAU,EAAE;oBACV,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,SAAS,CAAC;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,0DAA0D;oBAC/D,KAAK,EAAE,0DAA0D;oBACjE,SAAS,EAAE,+BAA+B;iBAC3C;gBACD,YAAY,EAAE;oBACZ,gBAAgB,EAAE,QAAQ;oBAC1B,2BAA2B,EAAE,QAAQ;oBACrC,oBAAoB,EAAE,QAAQ;oBAC9B,mBAAmB,EAAE,QAAQ;iBAC9B;gBACD,eAAe,EAAE;oBACf,aAAa,EAAE,QAAQ;oBACvB,GAAG,EAAE,QAAQ;oBACb,UAAU,EAAE,QAAQ;iBACrB;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,SAAS,CAAC;gBACjB,eAAe,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,UAAU;oBAClB,gBAAgB,EAAE,UAAU;oBAC5B,GAAG,EAAE,CAAC,QAAQ,CAAC;oBACf,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE,CAAC,MAAM,CAAC;iBAChB;gBACD,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB,CAAC;SACH;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,sCAAsC;gBACtC,qDAAqD;gBACrD,gBAAgB;gBAChB,iDAAiD;gBACjD,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAClF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,uBAAuB,EAAE;SACnC;KACF,CAAC;AACJ,CAAC;AAED,4BAA4B;AAC5B,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DR,CAAC;AACF,CAAC;AAED,wBAAwB;AACxB,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,kCAAkC;AAClC,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;SAC9B,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,YAAY,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Federation 管理员部署凭证模块。
|
|
3
|
+
*
|
|
4
|
+
* CLI 只在内存中持有一次性明文密码,数据库只接收 PBKDF2 编码摘要。候选凭证必须
|
|
5
|
+
* 通过远端登录验证后才能展示,避免把未生效的密码交给用户。
|
|
6
|
+
*/
|
|
7
|
+
import type { FederationAdminDatabaseMode, FederationAdminDeploymentCredentials } from "../../types/FederationAdminDeployment.js";
|
|
8
|
+
/** 创建首次初始化候选或显式恢复凭证。 */
|
|
9
|
+
export declare function create_admin_deployment_credentials(mode: FederationAdminDatabaseMode): Promise<FederationAdminDeploymentCredentials>;
|
|
10
|
+
/** 验证候选凭证,并立即撤销验证产生的短期 Session。 */
|
|
11
|
+
export declare function verify_admin_deployment_credentials(base_url: string, credentials: FederationAdminDeploymentCredentials): Promise<boolean>;
|
|
12
|
+
/** 在部署和远端验证完全成功后一次性展示管理员凭证。 */
|
|
13
|
+
export declare function show_admin_credentials_once(credentials: FederationAdminDeploymentCredentials): void;
|
|
14
|
+
//# sourceMappingURL=AdminCredentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminCredentials.d.ts","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/AdminCredentials.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EACV,2BAA2B,EAC3B,oCAAoC,EACrC,MAAM,iDAAiD,CAAC;AAEzD,wBAAwB;AACxB,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,oCAAoC,CAAC,CAS/C;AAED,mCAAmC;AACnC,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,oCAAoC,GAChD,OAAO,CAAC,OAAO,CAAC,CAqClB;AAED,+BAA+B;AAC/B,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,oCAAoC,GAChD,IAAI,CAUN"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Federation 管理员部署凭证模块。
|
|
3
|
+
*
|
|
4
|
+
* CLI 只在内存中持有一次性明文密码,数据库只接收 PBKDF2 编码摘要。候选凭证必须
|
|
5
|
+
* 通过远端登录验证后才能展示,避免把未生效的密码交给用户。
|
|
6
|
+
*/
|
|
7
|
+
import { create_federation_admin_credentials, create_federation_admin_password_hash, } from "@downcity/city";
|
|
8
|
+
import { randomUUID } from "node:crypto";
|
|
9
|
+
import { CliError } from "../../../shared/CliError.js";
|
|
10
|
+
import { emitCliBlock } from "../../../shared/CliReporter.js";
|
|
11
|
+
/** 创建首次初始化候选或显式恢复凭证。 */
|
|
12
|
+
export async function create_admin_deployment_credentials(mode) {
|
|
13
|
+
const credentials = create_federation_admin_credentials();
|
|
14
|
+
return {
|
|
15
|
+
mode,
|
|
16
|
+
provision_id: `fap_${randomUUID().replace(/-/gu, "")}`,
|
|
17
|
+
admin_id: credentials.admin_id,
|
|
18
|
+
password_hash: await create_federation_admin_password_hash(credentials.password),
|
|
19
|
+
password: credentials.password,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** 验证候选凭证,并立即撤销验证产生的短期 Session。 */
|
|
23
|
+
export async function verify_admin_deployment_credentials(base_url, credentials) {
|
|
24
|
+
const response = await fetch(`${base_url.replace(/\/+$/gu, "")}/v1/admin/login`, {
|
|
25
|
+
method: "POST",
|
|
26
|
+
headers: { "content-type": "application/json" },
|
|
27
|
+
body: JSON.stringify({
|
|
28
|
+
admin_id: credentials.admin_id,
|
|
29
|
+
password: credentials.password,
|
|
30
|
+
}),
|
|
31
|
+
});
|
|
32
|
+
const response_text = await response.text();
|
|
33
|
+
if (!response.ok) {
|
|
34
|
+
throw new CliError({
|
|
35
|
+
title: "Federation administrator verification failed",
|
|
36
|
+
note: `Worker returned HTTP ${response.status}: ${response_text.slice(0, 500)}`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
let body;
|
|
40
|
+
try {
|
|
41
|
+
body = JSON.parse(response_text);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
throw new CliError({
|
|
45
|
+
title: "Federation administrator verification failed",
|
|
46
|
+
note: `Worker returned invalid JSON: ${response_text.slice(0, 500)}`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const session_token = typeof body.session_token === "string" ? body.session_token : "";
|
|
50
|
+
if (!session_token) {
|
|
51
|
+
throw new CliError({
|
|
52
|
+
title: "Federation administrator verification failed",
|
|
53
|
+
note: `Worker response did not include a session token: ${response_text.slice(0, 500)}`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
await fetch(`${base_url.replace(/\/+$/gu, "")}/v1/admin/logout`, {
|
|
57
|
+
method: "POST",
|
|
58
|
+
headers: { authorization: `Bearer ${session_token}` },
|
|
59
|
+
}).catch(() => undefined);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
/** 在部署和远端验证完全成功后一次性展示管理员凭证。 */
|
|
63
|
+
export function show_admin_credentials_once(credentials) {
|
|
64
|
+
emitCliBlock({
|
|
65
|
+
tone: "accent",
|
|
66
|
+
title: "Federation Administrator · shown once",
|
|
67
|
+
facts: [
|
|
68
|
+
{ label: "admin id", value: credentials.admin_id },
|
|
69
|
+
{ label: "password", value: credentials.password },
|
|
70
|
+
],
|
|
71
|
+
note: "Save this password now. Downcity does not store it and cannot display it again.",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=AdminCredentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminCredentials.js","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/AdminCredentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Federation 管理员数据库部署器。
|
|
3
|
+
*
|
|
4
|
+
* 管理员初始化与恢复属于 `fed deploy` 控制面:Local 直接事务写入 SQLite,Cloudflare
|
|
5
|
+
* 通过 Wrangler 的远程 D1 权限执行临时 SQL 文件。Worker Runtime 不接收任何恢复变量。
|
|
6
|
+
*/
|
|
7
|
+
import type { FederationAdminDatabaseResult, FederationAdminDeploymentCredentials } from "../../types/FederationAdminDeployment.js";
|
|
8
|
+
/** 直接事务写入 Local Federation 的 SQLite 管理员数据库。 */
|
|
9
|
+
export declare function provision_local_admin_database(project_dir: string, credentials: FederationAdminDeploymentCredentials): FederationAdminDatabaseResult;
|
|
10
|
+
/** 使用 Cloudflare 部署权限直接写入远程 D1 管理员数据库。 */
|
|
11
|
+
export declare function provision_cloudflare_admin_database(params: {
|
|
12
|
+
/** Federation 项目目录。 */
|
|
13
|
+
project_dir: string;
|
|
14
|
+
/** Cloudflare account id。 */
|
|
15
|
+
account_id?: string;
|
|
16
|
+
/** D1 resolver 返回并绑定给 Worker 的数据库 ID。 */
|
|
17
|
+
database_id: string;
|
|
18
|
+
/** 本次候选管理员凭证。 */
|
|
19
|
+
credentials: FederationAdminDeploymentCredentials;
|
|
20
|
+
}): Promise<FederationAdminDatabaseResult>;
|
|
21
|
+
//# sourceMappingURL=AdminDatabaseProvisioner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminDatabaseProvisioner.d.ts","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/AdminDatabaseProvisioner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EACV,6BAA6B,EAC7B,oCAAoC,EACrC,MAAM,iDAAiD,CAAC;AAIzD,+CAA+C;AAC/C,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,oCAAoC,GAChD,6BAA6B,CAgC/B;AAED,0CAA0C;AAC1C,wBAAsB,mCAAmC,CAAC,MAAM,EAAE;IAChE,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,WAAW,EAAE,oCAAoC,CAAC;CACnD,GAAG,OAAO,CAAC,6BAA6B,CAAC,CA6BzC"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Federation 管理员数据库部署器。
|
|
3
|
+
*
|
|
4
|
+
* 管理员初始化与恢复属于 `fed deploy` 控制面:Local 直接事务写入 SQLite,Cloudflare
|
|
5
|
+
* 通过 Wrangler 的远程 D1 权限执行临时 SQL 文件。Worker Runtime 不接收任何恢复变量。
|
|
6
|
+
*/
|
|
7
|
+
import BetterSqlite3 from "better-sqlite3";
|
|
8
|
+
import { parse as parse_dotenv } from "dotenv";
|
|
9
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
10
|
+
import { isAbsolute, join, resolve } from "node:path";
|
|
11
|
+
import { runCommand } from "./CommandRunner.js";
|
|
12
|
+
import { CliError } from "../../../shared/CliError.js";
|
|
13
|
+
const OWNER_SLOT = "owner";
|
|
14
|
+
/** 直接事务写入 Local Federation 的 SQLite 管理员数据库。 */
|
|
15
|
+
export function provision_local_admin_database(project_dir, credentials) {
|
|
16
|
+
const database_path = resolve_local_database_path(project_dir);
|
|
17
|
+
const database = new BetterSqlite3(database_path);
|
|
18
|
+
try {
|
|
19
|
+
database.exec(admin_schema_sql());
|
|
20
|
+
const apply_credentials = database.transaction(() => {
|
|
21
|
+
if (credentials.mode === "reset") {
|
|
22
|
+
database.prepare(reset_administrator_sql()).run(database_values(credentials));
|
|
23
|
+
database.prepare(revoke_sessions_sql()).run(new Date().toISOString());
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
database.prepare(initialize_administrator_sql()).run(database_values(credentials));
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
apply_credentials();
|
|
30
|
+
const current = database.prepare("SELECT admin_id, provision_id FROM federation_administrators WHERE owner_slot = ? LIMIT 1").get(OWNER_SLOT);
|
|
31
|
+
const admin_id = String(current?.admin_id ?? "").trim();
|
|
32
|
+
if (!admin_id)
|
|
33
|
+
throw new Error("Administrator row was not created");
|
|
34
|
+
return {
|
|
35
|
+
admin_id,
|
|
36
|
+
credentials_applied: String(current?.provision_id ?? "") === credentials.provision_id,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new CliError({
|
|
41
|
+
title: "Local administrator database update failed",
|
|
42
|
+
note: error instanceof Error ? error.message : String(error),
|
|
43
|
+
fix: `Check the SQLite database at ${database_path}.`,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
database.close();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** 使用 Cloudflare 部署权限直接写入远程 D1 管理员数据库。 */
|
|
51
|
+
export async function provision_cloudflare_admin_database(params) {
|
|
52
|
+
const sql = build_remote_admin_sql(params.credentials);
|
|
53
|
+
try {
|
|
54
|
+
const output = await runCommand({
|
|
55
|
+
label: params.credentials.mode === "reset"
|
|
56
|
+
? "Reset Federation administrator"
|
|
57
|
+
: "Initialize Federation administrator",
|
|
58
|
+
command: `pnpm exec wrangler d1 execute ${shell_quote(params.database_id)} --remote --command ${shell_quote(sql)} --json --yes`,
|
|
59
|
+
display_command: "pnpm exec wrangler d1 execute <database> --remote --command <administrator SQL> --json --yes",
|
|
60
|
+
cwd: params.project_dir,
|
|
61
|
+
env: { CLOUDFLARE_ACCOUNT_ID: params.account_id },
|
|
62
|
+
capture: true,
|
|
63
|
+
});
|
|
64
|
+
const current = find_admin_result(JSON.parse(output));
|
|
65
|
+
if (!current?.admin_id) {
|
|
66
|
+
throw new Error("Wrangler completed without returning the administrator row");
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
admin_id: current.admin_id,
|
|
70
|
+
credentials_applied: current.provision_id === params.credentials.provision_id,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (error instanceof CliError)
|
|
75
|
+
throw error;
|
|
76
|
+
throw new CliError({
|
|
77
|
+
title: "Cloudflare administrator database update failed",
|
|
78
|
+
note: error instanceof Error ? error.message : String(error),
|
|
79
|
+
fix: `Check D1 database ${params.database_id} and the current Cloudflare account permission.`,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** 解析 Local 模板使用的 SQLite 文件路径。 */
|
|
84
|
+
function resolve_local_database_path(project_dir) {
|
|
85
|
+
const env_path = join(project_dir, ".env");
|
|
86
|
+
const entries = existsSync(env_path) ? parse_dotenv(readFileSync(env_path)) : {};
|
|
87
|
+
const database_url = String(entries.DOWNCITY_FEDERATION_DATABASE_URL ?? "file:./data.sqlite").trim();
|
|
88
|
+
if (!database_url.startsWith("file:")) {
|
|
89
|
+
throw new CliError({
|
|
90
|
+
title: "Local administrator reset requires SQLite",
|
|
91
|
+
note: "DOWNCITY_FEDERATION_DATABASE_URL must use a file: SQLite URL.",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const filename = database_url.slice("file:".length).trim();
|
|
95
|
+
if (!filename)
|
|
96
|
+
throw new CliError({ title: "Local SQLite database path is empty" });
|
|
97
|
+
return isAbsolute(filename) ? filename : resolve(project_dir, filename);
|
|
98
|
+
}
|
|
99
|
+
/** 创建管理员与 Session 系统表。 */
|
|
100
|
+
function admin_schema_sql() {
|
|
101
|
+
return `
|
|
102
|
+
CREATE TABLE IF NOT EXISTS federation_administrators (
|
|
103
|
+
owner_slot TEXT PRIMARY KEY,
|
|
104
|
+
admin_id TEXT NOT NULL,
|
|
105
|
+
password_hash TEXT NOT NULL,
|
|
106
|
+
status TEXT NOT NULL,
|
|
107
|
+
failed_attempts TEXT NOT NULL,
|
|
108
|
+
locked_until TEXT NOT NULL,
|
|
109
|
+
provision_id TEXT NOT NULL,
|
|
110
|
+
created_at TEXT NOT NULL,
|
|
111
|
+
updated_at TEXT NOT NULL
|
|
112
|
+
);
|
|
113
|
+
CREATE UNIQUE INDEX IF NOT EXISTS federation_administrators_admin_id
|
|
114
|
+
ON federation_administrators(admin_id);
|
|
115
|
+
CREATE TABLE IF NOT EXISTS federation_admin_sessions (
|
|
116
|
+
session_id TEXT PRIMARY KEY,
|
|
117
|
+
admin_id TEXT NOT NULL,
|
|
118
|
+
token_hash TEXT NOT NULL,
|
|
119
|
+
status TEXT NOT NULL,
|
|
120
|
+
created_at TEXT NOT NULL,
|
|
121
|
+
expires_at TEXT NOT NULL,
|
|
122
|
+
last_seen_at TEXT NOT NULL,
|
|
123
|
+
revoked_at TEXT NOT NULL
|
|
124
|
+
);
|
|
125
|
+
CREATE UNIQUE INDEX IF NOT EXISTS federation_admin_sessions_token_hash
|
|
126
|
+
ON federation_admin_sessions(token_hash);
|
|
127
|
+
`.trim();
|
|
128
|
+
}
|
|
129
|
+
/** 首次部署只在 owner 槽位为空时创建管理员。 */
|
|
130
|
+
function initialize_administrator_sql() {
|
|
131
|
+
return `INSERT OR IGNORE INTO federation_administrators (
|
|
132
|
+
owner_slot, admin_id, password_hash, status, failed_attempts, locked_until,
|
|
133
|
+
provision_id, created_at, updated_at
|
|
134
|
+
) VALUES (
|
|
135
|
+
@owner_slot, @admin_id, @password_hash, 'active', '0', '',
|
|
136
|
+
@provision_id, @created_at, @updated_at
|
|
137
|
+
)`;
|
|
138
|
+
}
|
|
139
|
+
/** 显式恢复时创建或覆盖固定 owner 管理员。 */
|
|
140
|
+
function reset_administrator_sql() {
|
|
141
|
+
return `INSERT INTO federation_administrators (
|
|
142
|
+
owner_slot, admin_id, password_hash, status, failed_attempts, locked_until,
|
|
143
|
+
provision_id, created_at, updated_at
|
|
144
|
+
) VALUES (
|
|
145
|
+
@owner_slot, @admin_id, @password_hash, 'active', '0', '',
|
|
146
|
+
@provision_id, @created_at, @updated_at
|
|
147
|
+
) ON CONFLICT(owner_slot) DO UPDATE SET
|
|
148
|
+
admin_id = excluded.admin_id,
|
|
149
|
+
password_hash = excluded.password_hash,
|
|
150
|
+
status = 'active',
|
|
151
|
+
failed_attempts = '0',
|
|
152
|
+
locked_until = '',
|
|
153
|
+
provision_id = excluded.provision_id,
|
|
154
|
+
updated_at = excluded.updated_at`;
|
|
155
|
+
}
|
|
156
|
+
/** 重置管理员后撤销旧的活动 Session。 */
|
|
157
|
+
function revoke_sessions_sql() {
|
|
158
|
+
return "UPDATE federation_admin_sessions SET status = 'revoked', revoked_at = ? WHERE status = 'active'";
|
|
159
|
+
}
|
|
160
|
+
/** 构造 SQLite 参数对象。 */
|
|
161
|
+
function database_values(credentials) {
|
|
162
|
+
const now = new Date().toISOString();
|
|
163
|
+
return {
|
|
164
|
+
owner_slot: OWNER_SLOT,
|
|
165
|
+
admin_id: credentials.admin_id,
|
|
166
|
+
password_hash: credentials.password_hash,
|
|
167
|
+
provision_id: credentials.provision_id,
|
|
168
|
+
created_at: now,
|
|
169
|
+
updated_at: now,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/** 构造远程 D1 批量 SQL;明文密码从不进入该文件。 */
|
|
173
|
+
function build_remote_admin_sql(credentials) {
|
|
174
|
+
const values = database_values(credentials);
|
|
175
|
+
const parameterized = credentials.mode === "reset"
|
|
176
|
+
? reset_administrator_sql()
|
|
177
|
+
: initialize_administrator_sql();
|
|
178
|
+
const statement = Object.entries(values).reduce((sql, [key, value]) => sql.replaceAll(`@${key}`, sql_string(value)), parameterized);
|
|
179
|
+
const revoke = credentials.mode === "reset"
|
|
180
|
+
? `${revoke_sessions_sql().replace("?", sql_string(new Date().toISOString()))};`
|
|
181
|
+
: "";
|
|
182
|
+
return `${admin_schema_sql()};\n${statement};\n${revoke}\nSELECT admin_id, provision_id FROM federation_administrators WHERE owner_slot = 'owner' LIMIT 1;\n`;
|
|
183
|
+
}
|
|
184
|
+
/** 从 Wrangler D1 JSON 中递归查找最终管理员行。 */
|
|
185
|
+
function find_admin_result(value) {
|
|
186
|
+
if (Array.isArray(value)) {
|
|
187
|
+
for (const item of value) {
|
|
188
|
+
const found = find_admin_result(item);
|
|
189
|
+
if (found)
|
|
190
|
+
return found;
|
|
191
|
+
}
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
if (!value || typeof value !== "object")
|
|
195
|
+
return undefined;
|
|
196
|
+
const record = value;
|
|
197
|
+
const admin_id = typeof record.admin_id === "string" ? record.admin_id.trim() : "";
|
|
198
|
+
const provision_id = typeof record.provision_id === "string" ? record.provision_id.trim() : "";
|
|
199
|
+
if (admin_id)
|
|
200
|
+
return { admin_id, provision_id };
|
|
201
|
+
for (const child of Object.values(record)) {
|
|
202
|
+
const found = find_admin_result(child);
|
|
203
|
+
if (found)
|
|
204
|
+
return found;
|
|
205
|
+
}
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
/** 转义 SQL 字符串字面量。 */
|
|
209
|
+
function sql_string(value) {
|
|
210
|
+
return `'${value.replaceAll("'", "''")}'`;
|
|
211
|
+
}
|
|
212
|
+
/** shell 参数转义。 */
|
|
213
|
+
function shell_quote(value) {
|
|
214
|
+
return `'${value.replace(/'/gu, "'\\''")}'`;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=AdminDatabaseProvisioner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminDatabaseProvisioner.js","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/AdminDatabaseProvisioner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudflareWorkersDeployer.d.ts","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/CloudflareWorkersDeployer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"CloudflareWorkersDeployer.d.ts","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/CloudflareWorkersDeployer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,+CAA+C,CAAC;AAuBvD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,2BAA2B,EACxC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAkNf"}
|
|
@@ -19,7 +19,9 @@ import { writeWranglerConfig } from "./WranglerConfigWriter.js";
|
|
|
19
19
|
import { runCommand } from "./CommandRunner.js";
|
|
20
20
|
import { bumpProjectPatchVersion } from "./ProjectVersionManager.js";
|
|
21
21
|
import { runPackageDeployScripts } from "./PackageScriptRunner.js";
|
|
22
|
-
import {
|
|
22
|
+
import { create_admin_deployment_credentials, show_admin_credentials_once, verify_admin_deployment_credentials, } from "./AdminCredentials.js";
|
|
23
|
+
import { provision_cloudflare_admin_database } from "./AdminDatabaseProvisioner.js";
|
|
24
|
+
import { with_cli_progress } from "../../../shared/CliProgress.js";
|
|
23
25
|
const WORKER_INITIALIZATION_TIMEOUT_MS = 30_000;
|
|
24
26
|
const WORKER_HEALTH_RETRY_MS = 500;
|
|
25
27
|
/**
|
|
@@ -83,10 +85,10 @@ export async function deploy_cloudflare_workers(config_file, options) {
|
|
|
83
85
|
account_id,
|
|
84
86
|
create_if_missing: options.dry_run !== true,
|
|
85
87
|
});
|
|
86
|
-
const
|
|
87
|
-
? await
|
|
88
|
+
const admin_credentials = !options.dry_run && (options.admin_reset || !registered?.admin_id)
|
|
89
|
+
? await create_admin_deployment_credentials(options.admin_reset ? "reset" : "initialize")
|
|
88
90
|
: undefined;
|
|
89
|
-
const wrangler_result = writeWranglerConfig(config_file, d1_result.resolved_database_id
|
|
91
|
+
const wrangler_result = writeWranglerConfig(config_file, d1_result.resolved_database_id);
|
|
90
92
|
emitCliBlock({
|
|
91
93
|
tone: "success",
|
|
92
94
|
title: "D1 Database",
|
|
@@ -124,17 +126,40 @@ export async function deploy_cloudflare_workers(config_file, options) {
|
|
|
124
126
|
});
|
|
125
127
|
worker_url = config_file.config.deployment.url ?? extractWorkerUrl(output);
|
|
126
128
|
if (worker_url && !options.dry_run) {
|
|
127
|
-
await
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
await with_cli_progress({
|
|
130
|
+
title: "Wait for Federation Worker",
|
|
131
|
+
detail: `${worker_url}/health`,
|
|
132
|
+
}, async () => await wait_for_worker_health(worker_url, WORKER_INITIALIZATION_TIMEOUT_MS));
|
|
133
|
+
if (admin_credentials) {
|
|
134
|
+
const database_id = d1_result.resolved_database_id;
|
|
135
|
+
if (!database_id) {
|
|
136
|
+
throw new CliError({ title: "Federation administrator deployment requires a D1 database" });
|
|
137
|
+
}
|
|
138
|
+
const admin_result = await provision_cloudflare_admin_database({
|
|
139
|
+
project_dir: config_file.project_dir,
|
|
140
|
+
account_id,
|
|
141
|
+
database_id,
|
|
142
|
+
credentials: admin_credentials,
|
|
143
|
+
});
|
|
144
|
+
provisioned_admin_id = admin_result.admin_id;
|
|
145
|
+
if (admin_result.credentials_applied) {
|
|
146
|
+
const verified = await with_cli_progress({
|
|
147
|
+
title: "Verify Federation administrator",
|
|
148
|
+
detail: `${worker_url}/v1/admin/login`,
|
|
149
|
+
}, async () => await verify_admin_deployment_credentials(worker_url, admin_credentials));
|
|
150
|
+
if (!verified) {
|
|
151
|
+
throw new CliError({
|
|
152
|
+
title: "Federation administrator database update could not be verified",
|
|
153
|
+
note: "D1 accepted the administrator update, but the deployed Worker rejected the new credentials.",
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (options.admin_reset) {
|
|
131
158
|
throw new CliError({
|
|
132
159
|
title: "Federation administrator reset was not applied",
|
|
133
|
-
note: "
|
|
160
|
+
note: "D1 did not persist the generated recovery credentials.",
|
|
134
161
|
});
|
|
135
162
|
}
|
|
136
|
-
if (provisioned)
|
|
137
|
-
provisioned_admin_id = admin_context.provisioning.admin_id;
|
|
138
163
|
}
|
|
139
164
|
}
|
|
140
165
|
}
|
|
@@ -183,8 +208,8 @@ export async function deploy_cloudflare_workers(config_file, options) {
|
|
|
183
208
|
{ label: "status", value: "registered" },
|
|
184
209
|
],
|
|
185
210
|
});
|
|
186
|
-
if (
|
|
187
|
-
show_admin_credentials_once(
|
|
211
|
+
if (admin_credentials && provisioned_admin_id === admin_credentials.admin_id) {
|
|
212
|
+
show_admin_credentials_once(admin_credentials);
|
|
188
213
|
}
|
|
189
214
|
}
|
|
190
215
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudflareWorkersDeployer.js","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/CloudflareWorkersDeployer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CloudflareWorkersDeployer.js","sourceRoot":"","sources":["../../../../src/federation/deploy/runtime/CloudflareWorkersDeployer.ts"],"names":[],"mappings":"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"}
|