headroom-cms 0.1.4 → 0.1.6
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/admin/assets/AdminsPage-BqfhR4Zc.js +1 -0
- package/admin/assets/AllContentPage-C11eeRMt.js +1 -0
- package/admin/assets/ApiKeysPage-DJjOSLoR.js +1 -0
- package/admin/assets/AuditPage-DJNk7IaW.js +1 -0
- package/admin/assets/{BlockEditor-uSyk_TPt.js → BlockEditor-DDsml97y.js} +54 -54
- package/admin/assets/BlockTypeEditPage-Cg7BifaZ.js +1 -0
- package/admin/assets/BlockTypesPage-BDFj8TSL.js +1 -0
- package/admin/assets/BulkActionBar-CastJGEP.js +1 -0
- package/admin/assets/CollectionEditPage-DGW4iMfo.js +1 -0
- package/admin/assets/CollectionsPage-C8XNxRda.js +1 -0
- package/admin/assets/ContentCreatePage-CX4aOzTR.js +1 -0
- package/admin/assets/ContentEditPage-Dj3RK2BF.js +2 -0
- package/admin/assets/ContentListPage-CoDanHrR.js +1 -0
- package/admin/assets/{CustomBlockPreview-ers8OdZ0.js → CustomBlockPreview-DfDOcbmR.js} +1 -1
- package/admin/assets/FieldBuilder-8VVLG_j0.js +3 -0
- package/admin/assets/FilterBar-JCp03kkK.js +1 -0
- package/admin/assets/{LoginPage-uxiw8K1J.js → LoginPage-gPNC9XRN.js} +1 -1
- package/admin/assets/MediaField-Du7_gRse.js +1 -0
- package/admin/assets/MediaPage-D9763lEk.js +1 -0
- package/admin/assets/RelationshipPicker-D7dFI43Q.js +1 -0
- package/admin/assets/SiteSettingsPage-Tfiex2yn.js +1 -0
- package/admin/assets/SiteUsersPage-CSV8syR3.js +1 -0
- package/admin/assets/SitesPage-BFIZ3Y5K.js +1 -0
- package/admin/assets/SubmissionDetailPage-8vtUQsLd.js +1 -0
- package/admin/assets/SubmissionEditPage-PgowJuvq.js +1 -0
- package/admin/assets/SubmissionListPage-HFDQxPhn.js +1 -0
- package/admin/assets/TagInput-CDkKZboX.js +1 -0
- package/admin/assets/TagsPage-BW15-W4H.js +1 -0
- package/admin/assets/UsersPage-C-zlDeTy.js +1 -0
- package/admin/assets/WebhookEditPage-cPPALIbH.js +1 -0
- package/admin/assets/WebhooksPage-vkPC4m9a.js +1 -0
- package/admin/assets/{card-C7fgQS_U.js → card-10FqkZPA.js} +1 -1
- package/admin/assets/checkbox-fC1QPb_4.js +1 -0
- package/admin/assets/collapsible-B414SspL.js +1 -0
- package/admin/assets/command-BeacdV75.js +1 -0
- package/admin/assets/{core.esm-DRuhixPo.js → core.esm-B_kcYf6n.js} +2 -2
- package/admin/assets/index-Do_SK4Zl.css +1 -0
- package/admin/assets/index-wYNPRVrc.js +18 -0
- package/admin/assets/media-url-DIg_vSyf.js +1 -0
- package/admin/assets/popover-BJDj8C6y.js +1 -0
- package/admin/assets/{radix-lA_IxTIV.js → radix-C1kb_NqW.js} +2 -2
- package/admin/assets/react-vendor-C2CvUxFh.js +4 -0
- package/admin/assets/select-BV3jemT6.js +1 -0
- package/admin/assets/serializeToText-BJy0Ms5I.js +2 -0
- package/admin/assets/sortable.esm-QyXA6fio.js +1 -0
- package/admin/assets/{table-BjSue8Ev.js → table-WkEcC9MH.js} +1 -1
- package/admin/assets/{tanstack-oFmRhGwV.js → tanstack-Bs3zYPPV.js} +1 -1
- package/admin/assets/textarea-CHQ9tT69.js +1 -0
- package/admin/assets/useAdminResolver-CpZj93vH.js +1 -0
- package/admin/assets/useContent-D8yDRTTy.js +1 -0
- package/admin/assets/useContentSearch-B-_p0_QX.js +1 -0
- package/admin/assets/{useDebouncedValue-DHUCnm9B.js → useDebouncedValue-C-cQUcLG.js} +1 -1
- package/admin/assets/useFilterParams-DYdEuWPE.js +1 -0
- package/admin/assets/useMedia-m6zKB__r.js +1 -0
- package/admin/assets/usePageTitle-Bwf-MpTD.js +1 -0
- package/admin/assets/useSiteUsers-QbiItSH1.js +1 -0
- package/admin/assets/{useTags-BuXf7_7H.js → useTags-CLPWVUB3.js} +1 -1
- package/admin/assets/{useWebhooks-Cx9tbBME.js → useWebhooks-no0l3-mF.js} +1 -1
- package/admin/favicon-16x16.png +0 -0
- package/admin/favicon-32x32.png +0 -0
- package/admin/index.html +8 -7
- package/admin/sw.js +1 -1
- package/dist/api.d.ts +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +8 -0
- package/dist/api.js.map +1 -1
- package/dist/cdn.js +1 -1
- package/dist/cdn.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/scheduler.d.ts +25 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +64 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/storage.d.ts +1 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +16 -0
- package/dist/storage.js.map +1 -1
- package/lambda/api/bootstrap +0 -0
- package/lambda/image-lambda/index.mjs +1 -1
- package/lambda/webhook-worker/bootstrap +0 -0
- package/package.json +1 -1
- package/src/api.ts +9 -0
- package/src/cdn.ts +1 -1
- package/src/index.ts +17 -2
- package/src/scheduler.ts +83 -0
- package/src/sst-env.d.ts +4 -0
- package/src/storage.ts +17 -0
- package/admin/assets/AdminsPage-Cvqw6UOu.js +0 -1
- package/admin/assets/AllContentPage-Cnkt8Fgm.js +0 -1
- package/admin/assets/ApiKeysPage-FLex3Chc.js +0 -1
- package/admin/assets/AuditPage-ClgwR_8y.js +0 -1
- package/admin/assets/BlockTypeEditPage-Dr_yNLDI.js +0 -1
- package/admin/assets/BlockTypesPage-CwsGPuAZ.js +0 -1
- package/admin/assets/BulkActionBar-C-88Wnqw.js +0 -1
- package/admin/assets/CollectionEditPage-Cimkb84B.js +0 -1
- package/admin/assets/CollectionsPage-CxnSFPCH.js +0 -1
- package/admin/assets/ContentCreatePage-DZCyOcte.js +0 -1
- package/admin/assets/ContentEditPage-RtHbU_l4.js +0 -3
- package/admin/assets/ContentListPage-qFcZVzg9.js +0 -1
- package/admin/assets/FieldBuilder-Ds-agLm7.js +0 -3
- package/admin/assets/MediaPage-CeepVDHQ.js +0 -1
- package/admin/assets/SiteSettingsPage-xkngL15i.js +0 -1
- package/admin/assets/SitesPage-BD9tou9-.js +0 -1
- package/admin/assets/TagsPage-BxSwTLpQ.js +0 -1
- package/admin/assets/UsersPage-BayuQyLh.js +0 -1
- package/admin/assets/WebhookEditPage-BrXm8Dht.js +0 -1
- package/admin/assets/WebhooksPage-BUE6XuIP.js +0 -1
- package/admin/assets/badge-B8OxObuF.js +0 -1
- package/admin/assets/check-CxKAR64t.js +0 -1
- package/admin/assets/checkbox-BV2kjQBe.js +0 -1
- package/admin/assets/command-qGFnWxcS.js +0 -1
- package/admin/assets/copy-CgYzmj06.js +0 -1
- package/admin/assets/index-DX9xeoQx.js +0 -18
- package/admin/assets/index-PpbsYFRh.css +0 -1
- package/admin/assets/plus-HdRn2U0S.js +0 -1
- package/admin/assets/popover-Cou924mw.js +0 -1
- package/admin/assets/react-vendor-B0Dih9Pj.js +0 -4
- package/admin/assets/search-C-3Q9nn7.js +0 -1
- package/admin/assets/select-CHW5R8qv.js +0 -1
- package/admin/assets/sortable.esm-CBJBhe4k.js +0 -1
- package/admin/assets/trash-2-CWWRVuRB.js +0 -1
- package/admin/assets/use-mobile-C1r2eP64.js +0 -1
- package/admin/assets/useAdminResolver-D6B6RXnk.js +0 -1
- package/admin/assets/useContent-f19XHVlJ.js +0 -1
- package/admin/assets/useMedia-DkvP1QLG.js +0 -1
- package/admin/vite.svg +0 -1
package/admin/index.html
CHANGED
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/
|
|
5
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
|
6
|
+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
|
6
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
7
8
|
<meta name="theme-color" content="#0a0a0a" />
|
|
8
9
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
9
10
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
10
11
|
<meta name="apple-mobile-web-app-title" content="Headroom" />
|
|
11
12
|
<link rel="apple-touch-icon" href="/icons/icon-180x180.png" />
|
|
12
|
-
<title>Headroom
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/react-vendor-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/tanstack-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/radix-
|
|
17
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
13
|
+
<title>Headroom</title>
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-wYNPRVrc.js"></script>
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/react-vendor-C2CvUxFh.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/tanstack-Bs3zYPPV.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/radix-C1kb_NqW.js">
|
|
18
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Do_SK4Zl.css">
|
|
18
19
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
|
19
20
|
<body>
|
|
20
21
|
<script>
|
package/admin/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let s,e={};const l=(l,
|
|
1
|
+
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(i,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const a=s=>l(s,r),o={module:{uri:r},exports:u,require:a};e[r]=Promise.all(i.map(s=>o[s]||a(s))).then(s=>(n(...s),u))}}define(["./workbox-7d58179f"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"index.html",revision:"6c579acabfbfb10d79dc46377a4d42e8"},{url:"favicon-32x32.png",revision:"b3444a97a94af8708e3af842395316b9"},{url:"favicon-16x16.png",revision:"6ac0bbd011d9edf37858e0459d580887"},{url:"icons/maskable-icon-512x512.png",revision:"d6913dcae3805185fad0790a20eae097"},{url:"icons/icon-512x512.png",revision:"ed25f5ccf87506782ee42be66318531b"},{url:"icons/icon-192x192.png",revision:"578d0c18e97882eaae9436f3bdd3c446"},{url:"icons/icon-180x180.png",revision:"8a45d7715a9f2f3a8b929a791b4a67e1"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/useWebhooks-no0l3-mF.js",revision:null},{url:"assets/useTags-CLPWVUB3.js",revision:null},{url:"assets/useSiteUsers-QbiItSH1.js",revision:null},{url:"assets/usePageTitle-Bwf-MpTD.js",revision:null},{url:"assets/useMedia-m6zKB__r.js",revision:null},{url:"assets/useFilterParams-DYdEuWPE.js",revision:null},{url:"assets/useDebouncedValue-C-cQUcLG.js",revision:null},{url:"assets/useContentSearch-B-_p0_QX.js",revision:null},{url:"assets/useContent-D8yDRTTy.js",revision:null},{url:"assets/useAdminResolver-CpZj93vH.js",revision:null},{url:"assets/textarea-CHQ9tT69.js",revision:null},{url:"assets/tanstack-Bs3zYPPV.js",revision:null},{url:"assets/table-WkEcC9MH.js",revision:null},{url:"assets/sortable.esm-QyXA6fio.js",revision:null},{url:"assets/serializeToText-BJy0Ms5I.js",revision:null},{url:"assets/select-BV3jemT6.js",revision:null},{url:"assets/react-vendor-C2CvUxFh.js",revision:null},{url:"assets/radix-C1kb_NqW.js",revision:null},{url:"assets/popover-BJDj8C6y.js",revision:null},{url:"assets/native-48B9X9Wg.js",revision:null},{url:"assets/module-RjUF93sV.js",revision:null},{url:"assets/media-url-DIg_vSyf.js",revision:null},{url:"assets/lib-BrI1UB_t.js",revision:null},{url:"assets/index-wYNPRVrc.js",revision:null},{url:"assets/index-Do_SK4Zl.css",revision:null},{url:"assets/format-C88SDH8g.js",revision:null},{url:"assets/core.esm-B_kcYf6n.js",revision:null},{url:"assets/contentStatus-BmaiYVOm.js",revision:null},{url:"assets/command-BeacdV75.js",revision:null},{url:"assets/collapsible-B414SspL.js",revision:null},{url:"assets/checkbox-fC1QPb_4.js",revision:null},{url:"assets/card-10FqkZPA.js",revision:null},{url:"assets/WebhooksPage-vkPC4m9a.js",revision:null},{url:"assets/WebhookEditPage-cPPALIbH.js",revision:null},{url:"assets/UsersPage-C-zlDeTy.js",revision:null},{url:"assets/TagsPage-BW15-W4H.js",revision:null},{url:"assets/TagInput-CDkKZboX.js",revision:null},{url:"assets/SubmissionListPage-HFDQxPhn.js",revision:null},{url:"assets/SubmissionEditPage-PgowJuvq.js",revision:null},{url:"assets/SubmissionDetailPage-8vtUQsLd.js",revision:null},{url:"assets/SitesPage-BFIZ3Y5K.js",revision:null},{url:"assets/SiteUsersPage-CSV8syR3.js",revision:null},{url:"assets/SiteSettingsPage-Tfiex2yn.js",revision:null},{url:"assets/RelationshipPicker-D7dFI43Q.js",revision:null},{url:"assets/MediaPage-DfPQBmNf.css",revision:null},{url:"assets/MediaPage-D9763lEk.js",revision:null},{url:"assets/MediaField-Du7_gRse.js",revision:null},{url:"assets/LoginPage-gPNC9XRN.js",revision:null},{url:"assets/FilterBar-JCp03kkK.js",revision:null},{url:"assets/FieldBuilder-8VVLG_j0.js",revision:null},{url:"assets/CustomBlockPreview-DfDOcbmR.js",revision:null},{url:"assets/ContentListPage-CoDanHrR.js",revision:null},{url:"assets/ContentEditPage-Dj3RK2BF.js",revision:null},{url:"assets/ContentCreatePage-CX4aOzTR.js",revision:null},{url:"assets/CollectionsPage-C8XNxRda.js",revision:null},{url:"assets/CollectionEditPage-DGW4iMfo.js",revision:null},{url:"assets/BulkActionBar-CastJGEP.js",revision:null},{url:"assets/BlockTypesPage-BDFj8TSL.js",revision:null},{url:"assets/BlockTypeEditPage-Cg7BifaZ.js",revision:null},{url:"assets/BlockEditor-DDsml97y.js",revision:null},{url:"assets/BlockEditor-Cp_wZ2xN.css",revision:null},{url:"assets/AuditPage-DJNk7IaW.js",revision:null},{url:"assets/ApiKeysPage-DJjOSLoR.js",revision:null},{url:"assets/AllContentPage-C11eeRMt.js",revision:null},{url:"assets/AdminsPage-BqfhR4Zc.js",revision:null},{url:"icons/icon-180x180.png",revision:"8a45d7715a9f2f3a8b929a791b4a67e1"},{url:"icons/icon-192x192.png",revision:"578d0c18e97882eaae9436f3bdd3c446"},{url:"icons/icon-512x512.png",revision:"ed25f5ccf87506782ee42be66318531b"},{url:"icons/maskable-icon-512x512.png",revision:"d6913dcae3805185fad0790a20eae097"},{url:"manifest.webmanifest",revision:"be12a951409033222ff660a548620488"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/^\/v1\//]})),s.registerRoute(({url:s})=>s.pathname.startsWith("/v1/admin/"),new s.NetworkFirst({cacheName:"api-cache",networkTimeoutSeconds:10,plugins:[new s.ExpirationPlugin({maxEntries:200,maxAgeSeconds:3600}),new s.CacheableResponsePlugin({statuses:[200]})]}),"GET"),s.registerRoute(({request:s})=>"image"===s.destination,new s.CacheFirst({cacheName:"media-cache",plugins:[new s.ExpirationPlugin({maxEntries:500,maxAgeSeconds:604800}),new s.CacheableResponsePlugin({statuses:[200]})]}),"GET")});
|
package/dist/api.d.ts
CHANGED
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;;EA6FpD;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
package/dist/api.js
CHANGED
|
@@ -44,6 +44,8 @@ export function createApi(name, args) {
|
|
|
44
44
|
IMAGE_SIGNING_SECRET: image.imageSigningSecret.value,
|
|
45
45
|
IMAGE_LAMBDA_NAME: image.imageLambda.name,
|
|
46
46
|
RELATIONSHIPS_TABLE: storage.relationships.name,
|
|
47
|
+
SITE_USERS_TABLE: storage.siteUsers.name,
|
|
48
|
+
SES_FROM_EMAIL: args.senderEmail,
|
|
47
49
|
},
|
|
48
50
|
link: [
|
|
49
51
|
storage.sites,
|
|
@@ -60,6 +62,7 @@ export function createApi(name, args) {
|
|
|
60
62
|
webhooks.webhookDeliveryQueue,
|
|
61
63
|
image.imageSigningSecret,
|
|
62
64
|
storage.relationships,
|
|
65
|
+
storage.siteUsers,
|
|
63
66
|
],
|
|
64
67
|
permissions: [
|
|
65
68
|
{
|
|
@@ -77,6 +80,7 @@ export function createApi(name, args) {
|
|
|
77
80
|
"cognito-idp:AdminCreateUser",
|
|
78
81
|
"cognito-idp:AdminDeleteUser",
|
|
79
82
|
"cognito-idp:AdminGetUser",
|
|
83
|
+
"cognito-idp:AdminInitiateAuth",
|
|
80
84
|
],
|
|
81
85
|
resources: [auth.userPool.arn],
|
|
82
86
|
},
|
|
@@ -84,6 +88,10 @@ export function createApi(name, args) {
|
|
|
84
88
|
actions: ["lambda:InvokeFunction"],
|
|
85
89
|
resources: [image.imageLambda.arn],
|
|
86
90
|
},
|
|
91
|
+
{
|
|
92
|
+
actions: ["ses:SendEmail", "ses:SendRawEmail"],
|
|
93
|
+
resources: ["*"],
|
|
94
|
+
},
|
|
87
95
|
],
|
|
88
96
|
});
|
|
89
97
|
return { api };
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAmBxB,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa;IACnD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG;QAC5B,CAAC,CAAC;YACE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,OAAO,EAAE,IAAa;SACvB;QACH,CAAC,CAAC;YACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;YAC7C,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,iBAA0B;YACnC,YAAY,EAAE,OAAgB;SAC/B,CAAC;IAEN,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,EAAE;QAC7C,GAAG,aAAa;QAChB,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;SACZ;QACD,WAAW,EAAE;YACX,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YAC/B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;YACnC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI;YAC9C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;YACjC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YAC/B,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;YAC3C,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC1C,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC1C,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAC1C,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC9B,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;YACxB,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI;YAC3C,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtC,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI;YACzD,iBAAiB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG;YACpD,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK;YACpD,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;YACzC,mBAAmB,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAC/C,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI;YACxC,cAAc,EAAE,IAAI,CAAC,WAAW;SACjC;QACD,IAAI,EAAE;YACJ,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,aAAa;YACrB,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,iBAAiB;YAC1B,QAAQ,CAAC,oBAAoB;YAC7B,KAAK,CAAC,kBAAkB;YACxB,OAAO,CAAC,aAAa;YACrB,OAAO,CAAC,SAAS;SAClB;QACD,WAAW,EAAE;YACX;gBACE,OAAO,EAAE;oBACP,gDAAgD;oBAChD,iCAAiC;oBACjC,oCAAoC;oBACpC,iCAAiC;iBAClC;gBACD,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;aAC7B;YACD;gBACE,OAAO,EAAE;oBACP,uBAAuB;oBACvB,6BAA6B;oBAC7B,6BAA6B;oBAC7B,0BAA0B;oBAC1B,+BAA+B;iBAChC;gBACD,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC/B;YACD;gBACE,OAAO,EAAE,CAAC,uBAAuB,CAAC;gBAClC,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;aACnC;YACD;gBACE,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;gBAC9C,SAAS,EAAE,CAAC,GAAG,CAAC;aACjB;SACF;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC"}
|
package/dist/cdn.js
CHANGED
|
@@ -141,7 +141,7 @@ export function createCdn(name, args) {
|
|
|
141
141
|
queryStringsConfig: {
|
|
142
142
|
queryStringBehavior: "whitelist",
|
|
143
143
|
queryStrings: {
|
|
144
|
-
items: ["collection", "limit", "cursor", "before", "after", "tag"],
|
|
144
|
+
items: ["collection", "limit", "cursor", "before", "after", "tag", "relatedTo", "relField", "sort"],
|
|
145
145
|
},
|
|
146
146
|
},
|
|
147
147
|
enableAcceptEncodingBrotli: true,
|
package/dist/cdn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn.js","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa;IACnD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAE7C,oEAAoE;IACpE,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;IAEtE,4EAA4E;IAC5E,iCAAiC;IACjC,4EAA4E;IAC5E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,UAAU,EAAE;QAClE,IAAI,EAAE,YAAY,CAAA,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,YAAY;QACxD,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,IAAI;QACb,yBAAyB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,IAAI,EAAE,YAAY,CAAA;;;;qBAID,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EzB;KACA,CAAC,CAAC;IAEH,4EAA4E;IAC5E,qCAAqC;IACrC,4EAA4E;IAC5E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CACtD,GAAG,IAAI,cAAc,EACrB;QACE,IAAI,EAAE,YAAY,CAAA,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,gBAAgB;QAC5D,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;;;;;;;;;;;;;;;;;GAiBT;KACE,CACF,CAAC;IAEF,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CACnD,GAAG,IAAI,gBAAgB,EACvB;QACE,IAAI,EAAE,YAAY,CAAA,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,YAAY;QACxD,OAAO,EACL,gEAAgE;QAClE,UAAU,EAAE,WAAW;QACvB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,CAAC;QACT,wCAAwC,EAAE;YACxC,aAAa,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;YACzC,aAAa,EAAE;gBACb,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE;aACvC;YACD,kBAAkB,EAAE;gBAClB,mBAAmB,EAAE,WAAW;gBAChC,YAAY,EAAE;oBACZ,KAAK,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"cdn.js","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export type { WebhookResources } from "./webhooks.js";
|
|
|
10
10
|
export type { ImageResources } from "./image.js";
|
|
11
11
|
export type { ApiResources } from "./api.js";
|
|
12
12
|
export type { CdnResources } from "./cdn.js";
|
|
13
|
+
export type { SchedulerResources } from "./scheduler.js";
|
|
13
14
|
export type { AdminSiteResources } from "./admin-site.js";
|
|
14
15
|
export interface HeadroomCMSArgs {
|
|
15
16
|
/**
|
|
@@ -71,6 +72,8 @@ export interface HeadroomCMSArgs {
|
|
|
71
72
|
imageLambdaHandler: string;
|
|
72
73
|
/** Path to admin UI source, e.g. "packages/admin" */
|
|
73
74
|
adminPath: string;
|
|
75
|
+
/** Go source path for scheduler Lambda, e.g. "packages/scheduler" */
|
|
76
|
+
schedulerHandler?: string;
|
|
74
77
|
};
|
|
75
78
|
}
|
|
76
79
|
export declare class HeadroomCMS {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwCH,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,gEAAgE;QAChE,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,gEAAgE;QAChE,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IAEpE;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IAEF;;;OAGG;IACH,GAAG,CAAC,EAAE;QACJ,yDAAyD;QACzD,UAAU,EAAE,MAAM,CAAC;QACnB,wEAAwE;QACxE,oBAAoB,EAAE,MAAM,CAAC;QAC7B,gGAAgG;QAChG,oBAAoB,EAAE,MAAM,CAAC;QAC7B,+EAA+E;QAC/E,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qDAAqD;QACrD,SAAS,EAAE,MAAM,CAAC;QAClB,qEAAqE;QACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,qBAAa,WAAW;IACtB,SAAgB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAgB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAgB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,SAAgB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,SAAgB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEvD,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAElD,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe;CAgGhD"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { createWebhooks } from "./webhooks.js";
|
|
|
12
12
|
import { createImage } from "./image.js";
|
|
13
13
|
import { createApi } from "./api.js";
|
|
14
14
|
import { createCdn } from "./cdn.js";
|
|
15
|
+
import { createScheduler } from "./scheduler.js";
|
|
15
16
|
import { createAdminSite } from "./admin-site.js";
|
|
16
17
|
/**
|
|
17
18
|
* Resolve the headroom-cms package root directory.
|
|
@@ -80,12 +81,22 @@ export class HeadroomCMS {
|
|
|
80
81
|
auth,
|
|
81
82
|
webhooks,
|
|
82
83
|
image,
|
|
84
|
+
senderEmail: args.senderEmail,
|
|
83
85
|
pkgRoot,
|
|
84
86
|
dev: args.dev
|
|
85
87
|
? { handler: args.dev.apiHandler }
|
|
86
88
|
: undefined,
|
|
87
89
|
});
|
|
88
|
-
// 6.
|
|
90
|
+
// 6. Scheduler (EventBridge cron + Go Lambda + lock table)
|
|
91
|
+
const schedulerResources = createScheduler(name, {
|
|
92
|
+
storage,
|
|
93
|
+
api,
|
|
94
|
+
pkgRoot,
|
|
95
|
+
dev: args.dev?.schedulerHandler
|
|
96
|
+
? { handler: args.dev.schedulerHandler }
|
|
97
|
+
: undefined,
|
|
98
|
+
});
|
|
99
|
+
// 7. CDN (CloudFront distribution + edge functions)
|
|
89
100
|
const cdn = createCdn(name, {
|
|
90
101
|
api,
|
|
91
102
|
image,
|
|
@@ -95,7 +106,7 @@ export class HeadroomCMS {
|
|
|
95
106
|
apiCacheTtl: args.apiCacheTtl,
|
|
96
107
|
domain: args.domain,
|
|
97
108
|
});
|
|
98
|
-
//
|
|
109
|
+
// 8. Admin UI (static site)
|
|
99
110
|
const admin = createAdminSite(name, {
|
|
100
111
|
api,
|
|
101
112
|
cdn,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;;;;GAQG;AACH,SAAS,cAAc;IACrB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QACjE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CACb,uDAAuD;QACvD,yCAAyC,CAC1C,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduler Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Defines the scheduler Lambda for auto-publishing scheduled content:
|
|
5
|
+
* - EventBridge rule (every 5 minutes)
|
|
6
|
+
* - Scheduler Lambda (Go)
|
|
7
|
+
* - DynamoDB lock table
|
|
8
|
+
*/
|
|
9
|
+
import type { StorageResources } from "./storage.js";
|
|
10
|
+
import type { ApiResources } from "./api.js";
|
|
11
|
+
export interface SchedulerArgs {
|
|
12
|
+
storage: StorageResources;
|
|
13
|
+
api: ApiResources;
|
|
14
|
+
pkgRoot: string;
|
|
15
|
+
dev?: {
|
|
16
|
+
/** Go source path, e.g. "packages/scheduler" */
|
|
17
|
+
handler: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare function createScheduler(name: string, args: SchedulerArgs): {
|
|
21
|
+
schedulerLock: sst.aws.Dynamo;
|
|
22
|
+
schedulerCron: sst.aws.Cron;
|
|
23
|
+
};
|
|
24
|
+
export type SchedulerResources = ReturnType<typeof createScheduler>;
|
|
25
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,gDAAgD;QAChD,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;;;EAyDhE;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scheduler Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Defines the scheduler Lambda for auto-publishing scheduled content:
|
|
5
|
+
* - EventBridge rule (every 5 minutes)
|
|
6
|
+
* - Scheduler Lambda (Go)
|
|
7
|
+
* - DynamoDB lock table
|
|
8
|
+
*/
|
|
9
|
+
import path from "path";
|
|
10
|
+
export function createScheduler(name, args) {
|
|
11
|
+
const { storage, api } = args;
|
|
12
|
+
// Lock table for distributed scheduler locking
|
|
13
|
+
const schedulerLock = new sst.aws.Dynamo(`${name}SchedulerLock`, {
|
|
14
|
+
fields: {
|
|
15
|
+
pk: "string",
|
|
16
|
+
},
|
|
17
|
+
primaryIndex: { hashKey: "pk" },
|
|
18
|
+
ttl: "ttl",
|
|
19
|
+
});
|
|
20
|
+
const handlerConfig = args.dev
|
|
21
|
+
? {
|
|
22
|
+
handler: args.dev.handler,
|
|
23
|
+
runtime: "go",
|
|
24
|
+
}
|
|
25
|
+
: {
|
|
26
|
+
bundle: path.join(args.pkgRoot, "lambda/scheduler"),
|
|
27
|
+
handler: "bootstrap",
|
|
28
|
+
runtime: "provided.al2023",
|
|
29
|
+
architecture: "arm64",
|
|
30
|
+
};
|
|
31
|
+
// EventBridge rule (every 5 minutes) with inline scheduler function
|
|
32
|
+
const schedulerCron = new sst.aws.Cron(`${name}SchedulerCron`, {
|
|
33
|
+
schedule: "rate(5 minutes)",
|
|
34
|
+
job: {
|
|
35
|
+
...handlerConfig,
|
|
36
|
+
timeout: "60 seconds",
|
|
37
|
+
memory: "256 MB",
|
|
38
|
+
environment: {
|
|
39
|
+
CONTENT_TABLE: storage.content.name,
|
|
40
|
+
LOCK_TABLE: schedulerLock.name,
|
|
41
|
+
API_URL: api.api.url,
|
|
42
|
+
},
|
|
43
|
+
permissions: [
|
|
44
|
+
{
|
|
45
|
+
actions: [
|
|
46
|
+
"dynamodb:Query",
|
|
47
|
+
"dynamodb:UpdateItem",
|
|
48
|
+
"dynamodb:PutItem",
|
|
49
|
+
"dynamodb:DeleteItem",
|
|
50
|
+
"dynamodb:GetItem",
|
|
51
|
+
],
|
|
52
|
+
resources: [
|
|
53
|
+
storage.content.arn,
|
|
54
|
+
$interpolate `${storage.content.arn}/index/*`,
|
|
55
|
+
schedulerLock.arn,
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
link: [storage.content, schedulerLock],
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
return { schedulerLock, schedulerCron };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAcxB,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAmB;IAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE9B,+CAA+C;IAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE;QAC/D,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC/B,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG;QAC5B,CAAC,CAAC;YACE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACzB,OAAO,EAAE,IAAa;SACvB;QACH,CAAC,CAAC;YACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACnD,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,iBAA0B;YACnC,YAAY,EAAE,OAAgB;SAC/B,CAAC;IAEN,oEAAoE;IACpE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,EAAE;QAC7D,QAAQ,EAAE,iBAAiB;QAC3B,GAAG,EAAE;YACH,GAAG,aAAa;YAChB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE;gBACX,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBACnC,UAAU,EAAE,aAAa,CAAC,IAAI;gBAC9B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;aACrB;YACD,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE;wBACP,gBAAgB;wBAChB,qBAAqB;wBACrB,kBAAkB;wBAClB,qBAAqB;wBACrB,kBAAkB;qBACnB;oBACD,SAAS,EAAE;wBACT,OAAO,CAAC,OAAO,CAAC,GAAG;wBACnB,YAAY,CAAA,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU;wBAC5C,aAAa,CAAC,GAAG;qBAClB;iBACF;aACF;YACD,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC;SACvC;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC"}
|
package/dist/storage.d.ts
CHANGED
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;EAiJzC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
package/dist/storage.js
CHANGED
|
@@ -21,12 +21,15 @@ export function createStorage(name) {
|
|
|
21
21
|
lastDraftAtSk: "string",
|
|
22
22
|
collectionGsiPk: "string",
|
|
23
23
|
titleSk: "string",
|
|
24
|
+
scheduledGsiPk: "string",
|
|
25
|
+
scheduledGsiSk: "string",
|
|
24
26
|
},
|
|
25
27
|
primaryIndex: { hashKey: "pk", rangeKey: "sk" },
|
|
26
28
|
globalIndexes: {
|
|
27
29
|
byPublishedDate: { hashKey: "gsiPk", rangeKey: "gsiSk" },
|
|
28
30
|
byLastDraftAt: { hashKey: "pk", rangeKey: "lastDraftAtSk" },
|
|
29
31
|
byCollectionTitle: { hashKey: "collectionGsiPk", rangeKey: "titleSk" },
|
|
32
|
+
byScheduledDate: { hashKey: "scheduledGsiPk", rangeKey: "scheduledGsiSk" },
|
|
30
33
|
},
|
|
31
34
|
});
|
|
32
35
|
const draftContent = new sst.aws.Dynamo(`${name}DraftContent`, {
|
|
@@ -88,6 +91,18 @@ export function createStorage(name) {
|
|
|
88
91
|
byTarget: { hashKey: "targetPk", rangeKey: "targetSk" },
|
|
89
92
|
},
|
|
90
93
|
});
|
|
94
|
+
const siteUsers = new sst.aws.Dynamo(`${name}SiteUsers`, {
|
|
95
|
+
fields: {
|
|
96
|
+
pk: "string",
|
|
97
|
+
sk: "string",
|
|
98
|
+
userId: "string",
|
|
99
|
+
},
|
|
100
|
+
primaryIndex: { hashKey: "pk", rangeKey: "sk" },
|
|
101
|
+
globalIndexes: {
|
|
102
|
+
byUserId: { hashKey: "userId", rangeKey: "sk" },
|
|
103
|
+
},
|
|
104
|
+
ttl: "expiresAt",
|
|
105
|
+
});
|
|
91
106
|
const contentBucket = new sst.aws.Bucket(`${name}ContentBucket`, {
|
|
92
107
|
versioning: true,
|
|
93
108
|
access: "cloudfront",
|
|
@@ -118,6 +133,7 @@ export function createStorage(name) {
|
|
|
118
133
|
blockTypes,
|
|
119
134
|
adminAudit,
|
|
120
135
|
relationships,
|
|
136
|
+
siteUsers,
|
|
121
137
|
contentBucket,
|
|
122
138
|
kvs,
|
|
123
139
|
};
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,EAAE;QAC/C,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE;QACnD,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,QAAQ;YACvB,eAAe,EAAE,QAAQ;YACzB,OAAO,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,EAAE;QAC/C,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE;QACnD,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,QAAQ;YACvB,eAAe,EAAE,QAAQ;YACzB,OAAO,EAAE,QAAQ;YACjB,cAAc,EAAE,QAAQ;YACxB,cAAc,EAAE,QAAQ;SACzB;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,aAAa,EAAE;YACb,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;YACxD,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE;YAC3D,iBAAiB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE;YACtE,eAAe,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE;SAC3E;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,cAAc,EAAE;QAC7D,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAE;QACjD,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAChC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,EAAE;QAC/C,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,QAAQ;SACtB;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,aAAa,EAAE;YACb,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE;YACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;SAC7D;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE;QAC3D,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE;QACzD,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE;QACzD,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACb;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE;QAC/D,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACnB;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,aAAa,EAAE;YACb,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;SACxD;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,EAAE;QACvD,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,QAAQ;SACjB;QACD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,aAAa,EAAE;YACb,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAChD;QACD,GAAG,EAAE,WAAW;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE;QAC/D,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE;YACT,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE;gBACpB,IAAI,CAAC,cAAc,GAAG;oBACpB;wBACE,EAAE,EAAE,yBAAyB;wBAC7B,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;wBACvB,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;qBAC5B;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,KAAK,EAAE;QACzD,IAAI,EAAE,YAAY,CAAA,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,MAAM;QAClD,OAAO,EAAE,oDAAoD;KAC9D,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,OAAO;QACP,YAAY;QACZ,MAAM;QACN,KAAK;QACL,WAAW;QACX,UAAU;QACV,UAAU;QACV,aAAa;QACb,SAAS;QACT,aAAa;QACb,GAAG;KACJ,CAAC;AACJ,CAAC"}
|
package/lambda/api/bootstrap
CHANGED
|
Binary file
|
|
@@ -88,7 +88,7 @@ async function handler(event) {
|
|
|
88
88
|
const inputBuffer = Buffer.from(
|
|
89
89
|
await s3Response.Body.transformToByteArray()
|
|
90
90
|
);
|
|
91
|
-
let pipeline = sharp(inputBuffer);
|
|
91
|
+
let pipeline = sharp(inputBuffer).rotate();
|
|
92
92
|
if (hasCrop) {
|
|
93
93
|
pipeline = pipeline.extract({ left: cx, top: cy, width: cw, height: ch });
|
|
94
94
|
}
|
|
Binary file
|
package/package.json
CHANGED
package/src/api.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface ApiArgs {
|
|
|
16
16
|
auth: AuthResources;
|
|
17
17
|
webhooks: WebhookResources;
|
|
18
18
|
image: ImageResources;
|
|
19
|
+
senderEmail: string;
|
|
19
20
|
pkgRoot: string;
|
|
20
21
|
dev?: {
|
|
21
22
|
/** Go source path, e.g. "packages/api" */
|
|
@@ -64,6 +65,8 @@ export function createApi(name: string, args: ApiArgs) {
|
|
|
64
65
|
IMAGE_SIGNING_SECRET: image.imageSigningSecret.value,
|
|
65
66
|
IMAGE_LAMBDA_NAME: image.imageLambda.name,
|
|
66
67
|
RELATIONSHIPS_TABLE: storage.relationships.name,
|
|
68
|
+
SITE_USERS_TABLE: storage.siteUsers.name,
|
|
69
|
+
SES_FROM_EMAIL: args.senderEmail,
|
|
67
70
|
},
|
|
68
71
|
link: [
|
|
69
72
|
storage.sites,
|
|
@@ -80,6 +83,7 @@ export function createApi(name: string, args: ApiArgs) {
|
|
|
80
83
|
webhooks.webhookDeliveryQueue,
|
|
81
84
|
image.imageSigningSecret,
|
|
82
85
|
storage.relationships,
|
|
86
|
+
storage.siteUsers,
|
|
83
87
|
],
|
|
84
88
|
permissions: [
|
|
85
89
|
{
|
|
@@ -97,6 +101,7 @@ export function createApi(name: string, args: ApiArgs) {
|
|
|
97
101
|
"cognito-idp:AdminCreateUser",
|
|
98
102
|
"cognito-idp:AdminDeleteUser",
|
|
99
103
|
"cognito-idp:AdminGetUser",
|
|
104
|
+
"cognito-idp:AdminInitiateAuth",
|
|
100
105
|
],
|
|
101
106
|
resources: [auth.userPool.arn],
|
|
102
107
|
},
|
|
@@ -104,6 +109,10 @@ export function createApi(name: string, args: ApiArgs) {
|
|
|
104
109
|
actions: ["lambda:InvokeFunction"],
|
|
105
110
|
resources: [image.imageLambda.arn],
|
|
106
111
|
},
|
|
112
|
+
{
|
|
113
|
+
actions: ["ses:SendEmail", "ses:SendRawEmail"],
|
|
114
|
+
resources: ["*"],
|
|
115
|
+
},
|
|
107
116
|
],
|
|
108
117
|
});
|
|
109
118
|
|
package/src/cdn.ts
CHANGED
|
@@ -170,7 +170,7 @@ export function createCdn(name: string, args: CdnArgs) {
|
|
|
170
170
|
queryStringsConfig: {
|
|
171
171
|
queryStringBehavior: "whitelist",
|
|
172
172
|
queryStrings: {
|
|
173
|
-
items: ["collection", "limit", "cursor", "before", "after", "tag"],
|
|
173
|
+
items: ["collection", "limit", "cursor", "before", "after", "tag", "relatedTo", "relField", "sort"],
|
|
174
174
|
},
|
|
175
175
|
},
|
|
176
176
|
enableAcceptEncodingBrotli: true,
|
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { createWebhooks } from "./webhooks.js";
|
|
|
13
13
|
import { createImage } from "./image.js";
|
|
14
14
|
import { createApi } from "./api.js";
|
|
15
15
|
import { createCdn } from "./cdn.js";
|
|
16
|
+
import { createScheduler } from "./scheduler.js";
|
|
16
17
|
import { createAdminSite } from "./admin-site.js";
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -48,6 +49,7 @@ export type { WebhookResources } from "./webhooks.js";
|
|
|
48
49
|
export type { ImageResources } from "./image.js";
|
|
49
50
|
export type { ApiResources } from "./api.js";
|
|
50
51
|
export type { CdnResources } from "./cdn.js";
|
|
52
|
+
export type { SchedulerResources } from "./scheduler.js";
|
|
51
53
|
export type { AdminSiteResources } from "./admin-site.js";
|
|
52
54
|
|
|
53
55
|
export interface HeadroomCMSArgs {
|
|
@@ -116,6 +118,8 @@ export interface HeadroomCMSArgs {
|
|
|
116
118
|
imageLambdaHandler: string;
|
|
117
119
|
/** Path to admin UI source, e.g. "packages/admin" */
|
|
118
120
|
adminPath: string;
|
|
121
|
+
/** Go source path for scheduler Lambda, e.g. "packages/scheduler" */
|
|
122
|
+
schedulerHandler?: string;
|
|
119
123
|
};
|
|
120
124
|
}
|
|
121
125
|
|
|
@@ -169,13 +173,24 @@ export class HeadroomCMS {
|
|
|
169
173
|
auth,
|
|
170
174
|
webhooks,
|
|
171
175
|
image,
|
|
176
|
+
senderEmail: args.senderEmail,
|
|
172
177
|
pkgRoot,
|
|
173
178
|
dev: args.dev
|
|
174
179
|
? { handler: args.dev.apiHandler }
|
|
175
180
|
: undefined,
|
|
176
181
|
});
|
|
177
182
|
|
|
178
|
-
// 6.
|
|
183
|
+
// 6. Scheduler (EventBridge cron + Go Lambda + lock table)
|
|
184
|
+
const schedulerResources = createScheduler(name, {
|
|
185
|
+
storage,
|
|
186
|
+
api,
|
|
187
|
+
pkgRoot,
|
|
188
|
+
dev: args.dev?.schedulerHandler
|
|
189
|
+
? { handler: args.dev.schedulerHandler }
|
|
190
|
+
: undefined,
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
// 7. CDN (CloudFront distribution + edge functions)
|
|
179
194
|
const cdn = createCdn(name, {
|
|
180
195
|
api,
|
|
181
196
|
image,
|
|
@@ -186,7 +201,7 @@ export class HeadroomCMS {
|
|
|
186
201
|
domain: args.domain,
|
|
187
202
|
});
|
|
188
203
|
|
|
189
|
-
//
|
|
204
|
+
// 8. Admin UI (static site)
|
|
190
205
|
const admin = createAdminSite(name, {
|
|
191
206
|
api,
|
|
192
207
|
cdn,
|