@contentrail/cloudflare 0.2.4 → 0.2.5
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 +14 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/site-handler.d.ts +4 -2
- package/dist/pages/site-handler.d.ts.map +1 -1
- package/dist/pages/site-handler.js +4 -2
- package/dist/pages/site-handler.js.map +1 -1
- package/dist/pages/templates.d.ts +19 -2
- package/dist/pages/templates.d.ts.map +1 -1
- package/dist/pages/templates.js +37 -5
- package/dist/pages/templates.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# `@contentrail/cloudflare`
|
|
2
2
|
|
|
3
|
-
Server-only Cloudflare Worker publishing API with **
|
|
3
|
+
Server-only Cloudflare Worker / Pages publishing API with **password admin auth**
|
|
4
|
+
(default) or optional **Cloudflare Access**, plus per-site authorization.
|
|
4
5
|
|
|
5
|
-
**Do not import from browser code.** Git/R2 credentials
|
|
6
|
+
**Do not import from browser code.** Git/R2 credentials, admin passwords, session
|
|
7
|
+
secrets, and Access verification settings stay in Worker/Pages secret bindings.
|
|
6
8
|
|
|
7
9
|
## Requirements
|
|
8
10
|
|
|
@@ -18,17 +20,18 @@ pnpm install
|
|
|
18
20
|
pnpm --filter @contentrail/cloudflare build
|
|
19
21
|
```
|
|
20
22
|
|
|
21
|
-
### From npm (`0.2.
|
|
23
|
+
### From npm (`0.2.5`)
|
|
22
24
|
|
|
23
25
|
```sh
|
|
24
|
-
pnpm add @contentrail/core@0.2.
|
|
26
|
+
pnpm add @contentrail/core@0.2.5 @contentrail/publisher@0.2.5 @contentrail/cloudflare@0.2.5 zod@^4.6.7
|
|
25
27
|
```
|
|
26
28
|
|
|
27
|
-
## ADR 011b
|
|
29
|
+
## Auth summary (ADR 011b + ADR 030)
|
|
28
30
|
|
|
29
|
-
- Authentication is pluggable; Access JWT
|
|
30
|
-
- Authorization is separate and default-deny per `siteId
|
|
31
|
+
- Authentication is pluggable. Pages default is username/password session; Access JWT remains optional.
|
|
32
|
+
- Authorization is separate and default-deny per `siteId` (`allowedSubjects` / `allowedEmails`).
|
|
31
33
|
- Client requests never choose repository/bucket/prefix — only a configured `destinationRef` on the server.
|
|
34
|
+
- Pages scaffolds must mount **both** `/api/*` and `/v1/*` onto `createPagesSiteHandler` (the editor client uses `/v1`).
|
|
32
35
|
|
|
33
36
|
## Endpoints
|
|
34
37
|
|
|
@@ -97,7 +100,10 @@ export default {
|
|
|
97
100
|
};
|
|
98
101
|
```
|
|
99
102
|
|
|
100
|
-
Pages Functions: `createPagesSiteHandler`
|
|
103
|
+
Pages Functions: `createPagesSiteHandler` plus `pagesHandlerModuleSource` /
|
|
104
|
+
`PAGES_API_FUNCTION_SOURCE` / `PAGES_V1_FUNCTION_SOURCE` (see
|
|
105
|
+
`docs/CLOUDFLARE_PAGES.md`). Static `/admin` HTML is not protected by Functions
|
|
106
|
+
middleware; API auth still blocks CMS operations.
|
|
101
107
|
|
|
102
108
|
## Deferred
|
|
103
109
|
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,6 @@ export { createMemoryRateLimiter, type MemoryRateLimiter, } from "./api/rate-lim
|
|
|
12
12
|
export { CLOUDFLARE_PAGES_CAPABILITIES } from "./pages/capabilities.js";
|
|
13
13
|
export { createCloudflarePagesClient, type CloudflarePagesClientOptions, type PagesProjectInput, type PlannedPagesAction, } from "./pages/client.js";
|
|
14
14
|
export { createPagesSiteHandler, type PagesSiteHandlerOptions, } from "./pages/site-handler.js";
|
|
15
|
-
export { PAGES_DEV_VARS_EXAMPLE, PAGES_MIDDLEWARE_SOURCE, pagesApiFunctionSource, } from "./pages/templates.js";
|
|
15
|
+
export { PAGES_API_FUNCTION_SOURCE, PAGES_DEV_VARS_EXAMPLE, PAGES_MIDDLEWARE_SOURCE, PAGES_V1_FUNCTION_SOURCE, pagesApiFunctionSource, pagesHandlerModuleSource, } from "./pages/templates.js";
|
|
16
16
|
export { checkMutationOrigin } from "./pages/csrf.js";
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mCAAmC,EACnC,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mCAAmC,EACnC,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,2BAA2B,EAC3B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,6 @@ export { createMemoryRateLimiter, } from "./api/rate-limit.js";
|
|
|
11
11
|
export { CLOUDFLARE_PAGES_CAPABILITIES } from "./pages/capabilities.js";
|
|
12
12
|
export { createCloudflarePagesClient, } from "./pages/client.js";
|
|
13
13
|
export { createPagesSiteHandler, } from "./pages/site-handler.js";
|
|
14
|
-
export { PAGES_DEV_VARS_EXAMPLE, PAGES_MIDDLEWARE_SOURCE, pagesApiFunctionSource, } from "./pages/templates.js";
|
|
14
|
+
export { PAGES_API_FUNCTION_SOURCE, PAGES_DEV_VARS_EXAMPLE, PAGES_MIDDLEWARE_SOURCE, PAGES_V1_FUNCTION_SOURCE, pagesApiFunctionSource, pagesHandlerModuleSource, } from "./pages/templates.js";
|
|
15
15
|
export { checkMutationOrigin } from "./pages/csrf.js";
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mCAAmC,GAEpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,GAGlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EACL,oBAAoB,GASrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,GAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,2BAA2B,GAI5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mCAAmC,GAEpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,GAGlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EACL,oBAAoB,GASrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,GAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,2BAA2B,GAI5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -20,8 +20,10 @@ export interface PagesSiteHandlerOptions extends PublishApiOptions {
|
|
|
20
20
|
* - POST /api/publish
|
|
21
21
|
* - GET /api/publish/status?collection=
|
|
22
22
|
*
|
|
23
|
-
* `/v1/*`
|
|
24
|
-
*
|
|
23
|
+
* `/v1/*` is the Worker-shaped API the admin editor client calls.
|
|
24
|
+
* Scaffold both `functions/api/[[path]].ts` and `functions/v1/[[path]].ts`
|
|
25
|
+
* so Pages routes those paths to this handler (not static HTML).
|
|
26
|
+
* Static `/admin` HTML is gated by the editor login UI + session auth
|
|
25
27
|
* (Cloudflare Access remains optional).
|
|
26
28
|
*/
|
|
27
29
|
export declare function createPagesSiteHandler(options: PagesSiteHandlerOptions): (request: Request) => Promise<Response>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-handler.d.ts","sourceRoot":"","sources":["../../src/pages/site-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED
|
|
1
|
+
{"version":3,"file":"site-handler.d.ts","sourceRoot":"","sources":["../../src/pages/site-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAoEzC"}
|
|
@@ -14,8 +14,10 @@ import { checkMutationOrigin } from "./csrf.js";
|
|
|
14
14
|
* - POST /api/publish
|
|
15
15
|
* - GET /api/publish/status?collection=
|
|
16
16
|
*
|
|
17
|
-
* `/v1/*`
|
|
18
|
-
*
|
|
17
|
+
* `/v1/*` is the Worker-shaped API the admin editor client calls.
|
|
18
|
+
* Scaffold both `functions/api/[[path]].ts` and `functions/v1/[[path]].ts`
|
|
19
|
+
* so Pages routes those paths to this handler (not static HTML).
|
|
20
|
+
* Static `/admin` HTML is gated by the editor login UI + session auth
|
|
19
21
|
* (Cloudflare Access remains optional).
|
|
20
22
|
*/
|
|
21
23
|
export function createPagesSiteHandler(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-handler.js","sourceRoot":"","sources":["../../src/pages/site-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EACL,yBAAyB,GAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAYhD
|
|
1
|
+
{"version":3,"file":"site-handler.js","sourceRoot":"","sources":["../../src/pages/site-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Source templates for Cloudflare Pages Functions.
|
|
3
3
|
* Secrets are named only — never inlined.
|
|
4
|
+
*
|
|
5
|
+
* The editor API client calls `/v1/*`. Pages must mount the same handler under
|
|
6
|
+
* both `/api/*` (short routes + login) and `/v1/*` (editor Worker-shaped paths).
|
|
4
7
|
*/
|
|
5
8
|
export declare const PAGES_DEV_VARS_EXAMPLE = "# Local Pages Functions secrets (gitignored as .dev.vars).\n# Copy to .dev.vars and fill values. Never commit real secrets.\n# Do not prefix secrets with PUBLIC_ or VITE_.\n\n# Default: username/password admin (no Zero Trust required)\nCONTENTRAIL_ADMIN_USERNAME=admin\nCONTENTRAIL_ADMIN_PASSWORD=\nCONTENTRAIL_SESSION_SECRET=\n\n# Site + Git publish\nCONTENTRAIL_SITE_ID=site\nCONTENTRAIL_GIT_OWNER=\nCONTENTRAIL_GIT_REPO=\nCONTENTRAIL_GIT_BRANCH=main\nCONTENTRAIL_CONTENT_ROOT=content\nCONTENTRAIL_ADMIN_ORIGIN=http://localhost:8788\nCONTENTRAIL_GITHUB_TOKEN=\n\n# Optional: Cloudflare Access instead of (or in addition to) password auth\n# CONTENTRAIL_ACCESS_TEAM_DOMAIN=\n# CONTENTRAIL_ACCESS_AUD=\n";
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Shared handler module at `functions/contentrail.ts`.
|
|
11
|
+
* @param collectionsModulePath - ESM import path to the collections module
|
|
12
|
+
* (for example `"../content/config"` from `functions/`).
|
|
13
|
+
*/
|
|
14
|
+
export declare function pagesHandlerModuleSource(collectionsModulePath: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Prefer `pagesHandlerModuleSource` + `PAGES_API_FUNCTION_SOURCE`.
|
|
17
|
+
* `collectionsModulePath` is an ESM path such as `"../content/config"`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function pagesApiFunctionSource(collectionsModulePath: string): string;
|
|
20
|
+
/** Thin re-export at `functions/api/[[path]].ts`. */
|
|
21
|
+
export declare const PAGES_API_FUNCTION_SOURCE = "/** ContentRail /api/* \u2014 login, health, short content/publish routes. */\nexport { onRequest } from \"../contentrail\";\n";
|
|
22
|
+
/** Thin re-export at `functions/v1/[[path]].ts` — editor client paths. */
|
|
23
|
+
export declare const PAGES_V1_FUNCTION_SOURCE = "/** ContentRail /v1/* \u2014 Worker-shaped routes used by the admin editor client. */\nexport { onRequest } from \"../contentrail\";\n";
|
|
24
|
+
export declare const PAGES_MIDDLEWARE_SOURCE = "/**\n * Early reject for /api and /v1 without a session cookie, Bearer token, or Access JWT.\n * /api/login and /api/health stay public. Static /admin HTML shows the login UI.\n */\nexport const onRequest: PagesFunction = async (context) => {\n const url = new URL(context.request.url);\n const isApi = url.pathname.startsWith(\"/api/\");\n const isV1 = url.pathname.startsWith(\"/v1/\");\n if (\n (isApi || isV1) &&\n url.pathname !== \"/api/health\" &&\n url.pathname !== \"/api/login\" &&\n context.request.method !== \"OPTIONS\"\n ) {\n const access = context.request.headers.get(\"Cf-Access-Jwt-Assertion\");\n const authorization = context.request.headers.get(\"Authorization\");\n const cookie = context.request.headers.get(\"Cookie\") ?? \"\";\n const hasBearer =\n authorization !== null && /^Bearer\\s+\\S+/i.test(authorization);\n const hasSession = /(?:^|;\\s*)contentrail_session=/.test(cookie);\n if (\n (access === null || access.trim() === \"\") &&\n !hasBearer &&\n !hasSession\n ) {\n return new Response(\n JSON.stringify({\n error: {\n code: \"MISSING_CREDENTIAL\",\n message: \"Missing admin session. Sign in at /admin.\",\n },\n }),\n { status: 401, headers: { \"content-type\": \"application/json\" } },\n );\n }\n }\n return context.next();\n};\n";
|
|
8
25
|
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/pages/templates.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/pages/templates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,osBAqBlC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CA8GR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,qBAAqB,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,mIAErC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,2IAEpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,i4CAsCnC,CAAC"}
|
package/dist/pages/templates.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Source templates for Cloudflare Pages Functions.
|
|
3
3
|
* Secrets are named only — never inlined.
|
|
4
|
+
*
|
|
5
|
+
* The editor API client calls `/v1/*`. Pages must mount the same handler under
|
|
6
|
+
* both `/api/*` (short routes + login) and `/v1/*` (editor Worker-shaped paths).
|
|
4
7
|
*/
|
|
5
8
|
export const PAGES_DEV_VARS_EXAMPLE = `# Local Pages Functions secrets (gitignored as .dev.vars).
|
|
6
9
|
# Copy to .dev.vars and fill values. Never commit real secrets.
|
|
@@ -24,9 +27,14 @@ CONTENTRAIL_GITHUB_TOKEN=
|
|
|
24
27
|
# CONTENTRAIL_ACCESS_TEAM_DOMAIN=
|
|
25
28
|
# CONTENTRAIL_ACCESS_AUD=
|
|
26
29
|
`;
|
|
27
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Shared handler module at `functions/contentrail.ts`.
|
|
32
|
+
* @param collectionsModulePath - ESM import path to the collections module
|
|
33
|
+
* (for example `"../content/config"` from `functions/`).
|
|
34
|
+
*/
|
|
35
|
+
export function pagesHandlerModuleSource(collectionsModulePath) {
|
|
28
36
|
return `/**
|
|
29
|
-
* ContentRail Pages Functions
|
|
37
|
+
* ContentRail Pages Functions handler (shared by /api and /v1).
|
|
30
38
|
* Server-only. Secrets come from Pages bindings / .dev.vars — never PUBLIC_* or VITE_*.
|
|
31
39
|
* Default auth: username/password session. Cloudflare Access is optional.
|
|
32
40
|
*/
|
|
@@ -41,7 +49,7 @@ import {
|
|
|
41
49
|
createGitPublishProvider,
|
|
42
50
|
createPublisher,
|
|
43
51
|
} from "@contentrail/publisher";
|
|
44
|
-
${
|
|
52
|
+
import { articles } from "${collectionsModulePath}";
|
|
45
53
|
|
|
46
54
|
interface Env {
|
|
47
55
|
CONTENTRAIL_ADMIN_USERNAME?: string;
|
|
@@ -95,6 +103,12 @@ export const onRequest: PagesFunction<Env> = async (context) => {
|
|
|
95
103
|
},
|
|
96
104
|
};
|
|
97
105
|
|
|
106
|
+
// Password auth subjects are password:<username>. Access-only installs must
|
|
107
|
+
// set allowedEmails or allowedSubjects to the Access identity before publish.
|
|
108
|
+
const allowedSubjects = passwordReady
|
|
109
|
+
? [\`password:\${env.CONTENTRAIL_ADMIN_USERNAME!.trim()}\`]
|
|
110
|
+
: undefined;
|
|
111
|
+
|
|
98
112
|
const handler = createPagesSiteHandler({
|
|
99
113
|
siteId: env.CONTENTRAIL_SITE_ID,
|
|
100
114
|
authenticator,
|
|
@@ -104,6 +118,7 @@ export const onRequest: PagesFunction<Env> = async (context) => {
|
|
|
104
118
|
[env.CONTENTRAIL_SITE_ID]: {
|
|
105
119
|
destinationRef: "git:allowlisted",
|
|
106
120
|
permissions: ["read", "publish", "status", "rollback", "validate"],
|
|
121
|
+
...(allowedSubjects !== undefined ? { allowedSubjects } : {}),
|
|
107
122
|
},
|
|
108
123
|
},
|
|
109
124
|
}),
|
|
@@ -128,14 +143,31 @@ export const onRequest: PagesFunction<Env> = async (context) => {
|
|
|
128
143
|
};
|
|
129
144
|
`;
|
|
130
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* @deprecated Prefer `pagesHandlerModuleSource` + `PAGES_API_FUNCTION_SOURCE`.
|
|
148
|
+
* `collectionsModulePath` is an ESM path such as `"../content/config"`.
|
|
149
|
+
*/
|
|
150
|
+
export function pagesApiFunctionSource(collectionsModulePath) {
|
|
151
|
+
return pagesHandlerModuleSource(collectionsModulePath);
|
|
152
|
+
}
|
|
153
|
+
/** Thin re-export at `functions/api/[[path]].ts`. */
|
|
154
|
+
export const PAGES_API_FUNCTION_SOURCE = `/** ContentRail /api/* — login, health, short content/publish routes. */
|
|
155
|
+
export { onRequest } from "../contentrail";
|
|
156
|
+
`;
|
|
157
|
+
/** Thin re-export at `functions/v1/[[path]].ts` — editor client paths. */
|
|
158
|
+
export const PAGES_V1_FUNCTION_SOURCE = `/** ContentRail /v1/* — Worker-shaped routes used by the admin editor client. */
|
|
159
|
+
export { onRequest } from "../contentrail";
|
|
160
|
+
`;
|
|
131
161
|
export const PAGES_MIDDLEWARE_SOURCE = `/**
|
|
132
|
-
* Early reject for /api without a session cookie, Bearer token, or Access JWT.
|
|
162
|
+
* Early reject for /api and /v1 without a session cookie, Bearer token, or Access JWT.
|
|
133
163
|
* /api/login and /api/health stay public. Static /admin HTML shows the login UI.
|
|
134
164
|
*/
|
|
135
165
|
export const onRequest: PagesFunction = async (context) => {
|
|
136
166
|
const url = new URL(context.request.url);
|
|
167
|
+
const isApi = url.pathname.startsWith("/api/");
|
|
168
|
+
const isV1 = url.pathname.startsWith("/v1/");
|
|
137
169
|
if (
|
|
138
|
-
|
|
170
|
+
(isApi || isV1) &&
|
|
139
171
|
url.pathname !== "/api/health" &&
|
|
140
172
|
url.pathname !== "/api/login" &&
|
|
141
173
|
context.request.method !== "OPTIONS"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/pages/templates.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/pages/templates.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBrC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,qBAA6B;IAE7B,OAAO;;;;;;;;;;;;;;;;4BAgBmB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FhD,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,qBAA6B;IAClE,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;AACzD,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG;;CAExC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG;;CAEvC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentrail/cloudflare",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Server-only Cloudflare Worker and Pages Functions publishing API with Access auth and Pages setup helpers.",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"jose": "^6.2.14",
|
|
32
|
-
"@contentrail/core": "0.2.
|
|
33
|
-
"@contentrail/publisher": "0.2.
|
|
32
|
+
"@contentrail/core": "0.2.5",
|
|
33
|
+
"@contentrail/publisher": "0.2.5"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "^22.20.5",
|