@auersperg/flare 0.3.2 → 0.3.4

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.
Files changed (52) hide show
  1. package/README.md +10 -4
  2. package/dist/cli/{chunk-x14smx1y.js → chunk-5s6zv1h9.js} +1 -1
  3. package/dist/cli/chunk-5tjevcsj.js +1174 -0
  4. package/dist/cli/{chunk-5cq8wgte.js → chunk-5yg1zj5n.js} +48 -29
  5. package/dist/cli/{chunk-786w6vrj.js → chunk-fv98dfg5.js} +21 -1
  6. package/dist/cli/flare.js +120 -4
  7. package/dist/platform/admin.js +790 -0
  8. package/dist/platform/dashboard/_astro/auth-view.CuxQ12Fa.js +1 -0
  9. package/dist/platform/dashboard/_astro/badge.DwKWvVfO.js +1 -0
  10. package/dist/platform/dashboard/_astro/card.Bdqmram9.js +1 -0
  11. package/dist/platform/dashboard/_astro/cli-approval.VKPc8wYS.js +1 -0
  12. package/dist/platform/dashboard/_astro/client.BUUZgEFj.js +1 -0
  13. package/dist/platform/dashboard/_astro/client.DYdPL2z4.js +9 -0
  14. package/dist/platform/dashboard/_astro/common.HrRZXwD9.js +1 -0
  15. package/dist/platform/dashboard/_astro/dashboard.CH594XTw.js +3 -0
  16. package/dist/platform/dashboard/_astro/data-view.CcyUYvId.js +1 -0
  17. package/dist/platform/dashboard/_astro/function-badge.MlTRYkqM.js +1 -0
  18. package/dist/platform/dashboard/_astro/functions-view.C8JWdNAh.js +1 -0
  19. package/dist/platform/dashboard/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2 +0 -0
  20. package/dist/platform/dashboard/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2 +0 -0
  21. package/dist/platform/dashboard/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2 +0 -0
  22. package/dist/platform/dashboard/_astro/geist-latin-wght-normal.BgDaEnEv.woff2 +0 -0
  23. package/dist/platform/dashboard/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2 +0 -0
  24. package/dist/platform/dashboard/_astro/index.DiiMDa7R.css +2 -0
  25. package/dist/platform/dashboard/_astro/input-group.3twGpQ77.js +1 -0
  26. package/dist/platform/dashboard/_astro/react-dom.DwX89IcG.js +1 -0
  27. package/dist/platform/dashboard/_astro/refresh-cw.B0Cj85jJ.js +1 -0
  28. package/dist/platform/dashboard/_astro/sdk-view.CRFkbEyS.js +1 -0
  29. package/dist/platform/dashboard/_astro/services-view.B2suYnaG.js +1 -0
  30. package/dist/platform/dashboard/_astro/settings-view.BFP47ySK.js +3 -0
  31. package/dist/platform/dashboard/_astro/status-badge.BV1dzbX9.js +1 -0
  32. package/dist/platform/dashboard/_astro/table-guide.DzBDP6fC.js +2 -0
  33. package/dist/platform/dashboard/_astro/tabs.GRO5rCrK.js +1 -0
  34. package/dist/platform/dashboard/_headers +3 -0
  35. package/dist/platform/dashboard/bootstrap/action.js +263 -0
  36. package/dist/platform/dashboard/bootstrap/api.ts +5 -0
  37. package/dist/platform/dashboard/bootstrap/facet.js +914 -0
  38. package/dist/platform/dashboard/bootstrap/manifest.json +5 -0
  39. package/dist/platform/dashboard/bootstrap/openapi.json +18 -0
  40. package/dist/platform/dashboard/bootstrap/release.json +11 -0
  41. package/dist/platform/dashboard/bootstrap/schema.json +1 -0
  42. package/dist/platform/dashboard/index.html +1 -0
  43. package/dist/platform/manifest.json +230 -0
  44. package/dist/platform/migrations/0001.sql +8 -0
  45. package/dist/platform/migrations/0002_project_aliases.sql +6 -0
  46. package/dist/platform/migrations/0003_cli_login.sql +9 -0
  47. package/dist/platform/migrations/0004_retention.sql +4 -0
  48. package/dist/platform/migrations/0005_project_deletion.sql +11 -0
  49. package/dist/platform/migrations/0006_platform_installation.sql +8 -0
  50. package/dist/platform/runtime.js +9392 -0
  51. package/dist/sdk/client.js +10 -2
  52. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ {
2
+ "protocol": 1,
3
+ "runtimeAbi": 4,
4
+ "functions": {}
5
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "Flare application contract",
5
+ "version": "153ae0371d561a6d70353c018514332e661f1307cab60b8dc45cd634b8d88a03"
6
+ },
7
+ "components": {
8
+ "schemas": {},
9
+ "securitySchemes": {
10
+ "bearer": {
11
+ "type": "http",
12
+ "scheme": "bearer",
13
+ "bearerFormat": "JWT"
14
+ }
15
+ }
16
+ },
17
+ "paths": {}
18
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "protocol": 1,
3
+ "compatibilityDate": "2026-10-10",
4
+ "checksums": {
5
+ "facet": "0c9e05c236480046a3588e84a637da1948505b7c4be9ceb65f230fa3a6ede3bf",
6
+ "action": "9d4559fcd73c82006c36891f01b6747001fbce4e5c578e83addbf5251b320dc4",
7
+ "schema": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
8
+ "manifest": "006a07907dfd7619fa66152627bc761e581cf8ac538f5002f3b89b71ce92d733"
9
+ },
10
+ "hash": "153ae0371d561a6d70353c018514332e661f1307cab60b8dc45cd634b8d88a03"
11
+ }
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html lang="en" class="dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="robots" content="noindex,nofollow"><title>Flare · Dashboard</title><meta http-equiv="content-security-policy" content="script-src 'self' 'sha256-xIb/Pa7FUshAu4ihwjchYcQpyCI8eS8kt40GpOAYCz8=' 'sha256-1BvDVWLr3QCC20uHhUDi27eDFVJpk1uMQJGIWKUks2I=' 'sha256-kmZE/W8I1iuTnl1b3yqzv9/DQZenPngd3NjSKMQl7y0=' 'sha256-Y8t0ntteBwH+PqGKUyjWW3CAk+BNJKSoQc0xZ68FjhM=' 'sha256-0O7iB6zr9x0r6X6eWYITC9V5q+yWCGAoFvcysBGbY9Q=' 'sha256-tQIkdAw2vqfQ1PjgUE4ML2A4pIV8SByQ1Seeehy6UIc=' 'sha256-4f86GpVBksx63uHEB4f15jGyhnVEOKjwqYxwnfDVOik='; style-src 'self' 'sha256-vv9IoKo7BSLbWcUHr3tNmfNVmm5L/9Cfn2H6LMk7/ow=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=';"><link rel="stylesheet" href="/_astro/index.DiiMDa7R.css"></head><body><style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(function(){let e=async e=>{await(await e())()};(self.Astro||(self.Astro={})).only=e,window.dispatchEvent(new Event(`astro:only`))})();</script><script>(function(){function e(t){"@babel/helpers - typeof";return e=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},e(t)}function t(t,n){if(e(t)!=`object`||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,n||`default`);if(e(i)!=`object`)return i;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(n===`string`?String:Number)(t)}function n(n){var r=t(n,`string`);return e(r)==`symbol`?r:r+``}function r(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let i=/* @__PURE__ */ new Set([`__proto__`,`constructor`,`prototype`]);{let e={0:e=>a(e),1:e=>n(e),2:e=>new RegExp(e),3:e=>new Date(e),4:e=>new Map(n(e)),5:e=>new Set(n(e)),6:e=>BigInt(e),7:e=>new URL(e),8:e=>new Uint8Array(e),9:e=>new Uint16Array(e),10:e=>new Uint32Array(e),11:e=>1/0*e},t=t=>{let[n,r]=t;return n in e?e[n](r):void 0},n=e=>e.map(t),a=e=>typeof e!=`object`||!e?e:Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]));class o extends HTMLElement{constructor(...e){super(...e),r(this,`Component`,void 0),r(this,`hydrator`,void 0),r(this,`hydrate`,async()=>{var e;if(!this.hydrator||!this.isConnected)return;let t=(e=this.parentElement)==null?void 0:e.closest(`astro-island[ssr]`);if(t){t.addEventListener(`astro:hydrate`,this.hydrate,{once:!0});return}let n=this.querySelectorAll(`astro-slot`),r={},i=this.querySelectorAll(`template[data-astro-template]`);for(let e of i){let t=e.closest(this.tagName);t!=null&&t.isSameNode(this)&&(r[e.getAttribute(`data-astro-template`)||`default`]=e.innerHTML,e.remove())}for(let e of n){let t=e.closest(this.tagName);t!=null&&t.isSameNode(this)&&(r[e.getAttribute(`name`)||`default`]=e.innerHTML)}let o;try{o=this.hasAttribute(`props`)?a(JSON.parse(this.getAttribute(`props`))):{}}catch(e){let t=this.getAttribute(`component-url`)||`<unknown>`,n=this.getAttribute(`component-export`);throw n&&(t+=` (export ${n})`),console.error(`[hydrate] Error parsing props for component ${t}`,this.getAttribute(`props`),e),e}await this.hydrator(this)(this.Component,o,r,{client:this.getAttribute(`client`)}),this.removeAttribute(`ssr`),this.dispatchEvent(new CustomEvent(`astro:hydrate`))}),r(this,`unmount`,()=>{this.isConnected||this.dispatchEvent(new CustomEvent(`astro:unmount`))})}disconnectedCallback(){document.removeEventListener(`astro:after-swap`,this.unmount),document.addEventListener(`astro:after-swap`,this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(`await-children`)||document.readyState===`interactive`||document.readyState===`complete`)this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(`DOMContentLoaded`,e),t.disconnect(),this.childrenConnectedCallback()},t=new MutationObserver(()=>{var t;((t=this.lastChild)==null?void 0:t.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===`astro:end`&&(this.lastChild.remove(),e())});t.observe(this,{childList:!0}),document.addEventListener(`DOMContentLoaded`,e)}}async childrenConnectedCallback(){let e=this.getAttribute(`before-hydration-url`);e&&await import(e),this.start()}getRetryImportUrl(e){let t=new URL(e,document.baseURI);return t.searchParams.set(`astro-retry`,Date.now().toString()),t.toString()}async importWithRetry(e){try{return await import(e)}catch(t){return await new Promise(e=>setTimeout(e,1e3)),import(this.getRetryImportUrl(e))}}handleHydrationError(e){let t=this.getAttribute(`component-url`),n=new CustomEvent(`astro:hydration-error`,{cancelable:!0,bubbles:!0,composed:!0,detail:{error:e,componentUrl:t}});this.dispatchEvent(n)&&console.error(`[astro-island] Error hydrating ${t}`,e)}async start(){let e=JSON.parse(this.getAttribute(`opts`)),t=this.getAttribute(`client`);if(Astro[t]===void 0){window.addEventListener(`astro:${t}`,()=>this.start(),{once:!0});return}try{await Astro[t](async()=>{let e=this.getAttribute(`renderer-url`);try{let[t,{default:n}]=await Promise.all([this.importWithRetry(this.getAttribute(`component-url`)),e?this.importWithRetry(e):Promise.resolve({default:()=>()=>{}})]),r=this.getAttribute(`component-export`)||`default`;if(r.includes(`.`)){this.Component=t;for(let e of r.split(`.`)){if(i.has(e)||!this.Component||typeof this.Component!=`object`&&typeof this.Component!=`function`||!Object.hasOwn(this.Component,e))throw Error(`Invalid component export path: ${r}`);this.Component=this.Component[e]}}else{if(i.has(r))throw Error(`Invalid component export path: ${r}`);this.Component=t[r]}return this.hydrator=n,this.hydrate}catch(e){return this.handleHydrationError(e),()=>{}}},e,this)}catch(e){this.handleHydrationError(e)}}attributeChangedCallback(){this.hydrate()}}r(o,`observedAttributes`,[`props`]),customElements.get(`astro-island`)||customElements.define(`astro-island`,o)}})();</script><astro-island uid="ZvQOAK" component-url="/_astro/dashboard.CH594XTw.js" component-export="default" renderer-url="/_astro/client.DYdPL2z4.js" props="{}" ssr client="only" opts="{&quot;name&quot;:&quot;Dashboard&quot;,&quot;value&quot;:&quot;react&quot;}" await-children><div class="p-6 text-sm text-muted-foreground" role="status">Loading Flare…</div><template data-astro-template="fallback"><div class="p-6 text-sm text-muted-foreground" role="status">Loading Flare…</div></template><!--astro:end--></astro-island></body></html>
@@ -0,0 +1,230 @@
1
+ {
2
+ "format": 1,
3
+ "version": "0.3.4",
4
+ "stateFormat": 1,
5
+ "protocol": 1,
6
+ "runtimeAbi": 4,
7
+ "compatibilityDate": "2026-10-10",
8
+ "wranglerVersion": "4.149.0",
9
+ "upgradeFrom": [
10
+ "0.3.3"
11
+ ],
12
+ "files": [
13
+ {
14
+ "path": "admin.js",
15
+ "bytes": 34968,
16
+ "sha256": "a3f84d4826515c013f06bf82c448d96cccbecc8a5889d063089575e08321184b"
17
+ },
18
+ {
19
+ "path": "dashboard/_astro/auth-view.CuxQ12Fa.js",
20
+ "bytes": 3472,
21
+ "sha256": "b4569610d8c9f8538f0e47d01ba3238440e433d3b5375aa18052903302125667"
22
+ },
23
+ {
24
+ "path": "dashboard/_astro/badge.DwKWvVfO.js",
25
+ "bytes": 1795,
26
+ "sha256": "09b66a0923df0da90d71ffff6f1594ccce1a713ff157ab557b6c55a2f03f917b"
27
+ },
28
+ {
29
+ "path": "dashboard/_astro/card.Bdqmram9.js",
30
+ "bytes": 1333,
31
+ "sha256": "e73810618290abe6f31bdb2799789815543f3ecb5072989704dc1539d80cae8d"
32
+ },
33
+ {
34
+ "path": "dashboard/_astro/cli-approval.VKPc8wYS.js",
35
+ "bytes": 2093,
36
+ "sha256": "42af2e3044e20177004f5256b4db57353ffa83012d705456e867b56f0334d827"
37
+ },
38
+ {
39
+ "path": "dashboard/_astro/client.BUUZgEFj.js",
40
+ "bytes": 9233,
41
+ "sha256": "1ecc2a7ab31c7017171920b73080ba2b8385cac07f4929ec70129e04624d8f67"
42
+ },
43
+ {
44
+ "path": "dashboard/_astro/client.DYdPL2z4.js",
45
+ "bytes": 209084,
46
+ "sha256": "83a5f419c0f99ed137a32a5d4385b822da4606300df604425844be4d9fad871a"
47
+ },
48
+ {
49
+ "path": "dashboard/_astro/common.HrRZXwD9.js",
50
+ "bytes": 188932,
51
+ "sha256": "9a17209771c26828a7a94f37e7dc4762db7e37bd7285e8286287012ee5251a6e"
52
+ },
53
+ {
54
+ "path": "dashboard/_astro/dashboard.CH594XTw.js",
55
+ "bytes": 21224,
56
+ "sha256": "448883a2857c632c867a38290923114ec1d4f13699ea7c4123e9dcb78164e3de"
57
+ },
58
+ {
59
+ "path": "dashboard/_astro/data-view.CcyUYvId.js",
60
+ "bytes": 5983,
61
+ "sha256": "bf661bc3b3375daf76aec82ee7f82646cf82e6ee5f2ee091107985585f3ac5d7"
62
+ },
63
+ {
64
+ "path": "dashboard/_astro/function-badge.MlTRYkqM.js",
65
+ "bytes": 594,
66
+ "sha256": "fc8ca7f8f7ca6e3cf50479b55ef614c284098d43df8d739d73a90865010f3149"
67
+ },
68
+ {
69
+ "path": "dashboard/_astro/functions-view.C8JWdNAh.js",
70
+ "bytes": 6248,
71
+ "sha256": "f195160a92af5b94c24be0c313820effb8d93b98e93f8b145f071c4e0d38ff32"
72
+ },
73
+ {
74
+ "path": "dashboard/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2",
75
+ "bytes": 7420,
76
+ "sha256": "2317fa4bb293c9c0b110e18315d529235c47a0ddd3338cea3d8c7955e927899e"
77
+ },
78
+ {
79
+ "path": "dashboard/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2",
80
+ "bytes": 15084,
81
+ "sha256": "6894439694946a589d157ece003086960a6a4013d74a813dab7602efdb3d8c09"
82
+ },
83
+ {
84
+ "path": "dashboard/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2",
85
+ "bytes": 16512,
86
+ "sha256": "824f485b5d26e2f2da3c2b236132ece1bc8e4e43373452950bb0e40548b4313f"
87
+ },
88
+ {
89
+ "path": "dashboard/_astro/geist-latin-wght-normal.BgDaEnEv.woff2",
90
+ "bytes": 29400,
91
+ "sha256": "19f9c92546aa300c312235e3125af1b81394d8db9a4bc4a425cd5b641d2d54e1"
92
+ },
93
+ {
94
+ "path": "dashboard/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2",
95
+ "bytes": 8004,
96
+ "sha256": "8fa40e5d248247735eb97a0bd593b8852440430600d6ba01364c31fe0abc1fe1"
97
+ },
98
+ {
99
+ "path": "dashboard/_astro/index.DiiMDa7R.css",
100
+ "bytes": 71187,
101
+ "sha256": "bbcd8dd19044c6f2db9dd750603c7918b34d212ffcb0d7eb3fc6426630e3d97f"
102
+ },
103
+ {
104
+ "path": "dashboard/_astro/input-group.3twGpQ77.js",
105
+ "bytes": 3068,
106
+ "sha256": "ddce8969c0385e4aa0c0aa1e49b63ecd55e32992640b06765fd3e535ad80292b"
107
+ },
108
+ {
109
+ "path": "dashboard/_astro/react-dom.DwX89IcG.js",
110
+ "bytes": 12201,
111
+ "sha256": "188ae3fd03cd28f711faa87c681a536c6fdca4980c4594688cadf31c80356a97"
112
+ },
113
+ {
114
+ "path": "dashboard/_astro/refresh-cw.B0Cj85jJ.js",
115
+ "bytes": 556,
116
+ "sha256": "ea64e2091a64357ee86f0dc24f4fd4d14225f37f2f6efbfbb4f87abd2d204313"
117
+ },
118
+ {
119
+ "path": "dashboard/_astro/sdk-view.CRFkbEyS.js",
120
+ "bytes": 3328,
121
+ "sha256": "04f12958739da4d0d8832bdb6641ed988c095c4ae6e6a74bc5e9488976225fbb"
122
+ },
123
+ {
124
+ "path": "dashboard/_astro/services-view.B2suYnaG.js",
125
+ "bytes": 8097,
126
+ "sha256": "ddce0a48fec23ba368229a803d03097d6c70a993b3b5c7805b5138ada32f4b23"
127
+ },
128
+ {
129
+ "path": "dashboard/_astro/settings-view.BFP47ySK.js",
130
+ "bytes": 10271,
131
+ "sha256": "589b1ca266c180afb5fac5421af9cfcca67d17e1d8372803e44cbfe8728b7190"
132
+ },
133
+ {
134
+ "path": "dashboard/_astro/status-badge.BV1dzbX9.js",
135
+ "bytes": 590,
136
+ "sha256": "add674fca2316f2b088ae07527144ee204a8144a6965a3080978a1163a541d5a"
137
+ },
138
+ {
139
+ "path": "dashboard/_astro/table-guide.DzBDP6fC.js",
140
+ "bytes": 5530,
141
+ "sha256": "0f18492f30414aa7061a5cfcd2a91f6a2903109ce8d42111fa3a4e1714b725f9"
142
+ },
143
+ {
144
+ "path": "dashboard/_astro/tabs.GRO5rCrK.js",
145
+ "bytes": 13083,
146
+ "sha256": "55f63b920f6d9414b42ff54522fd9c75261ea2deef598a9041cca6c6a34b2eda"
147
+ },
148
+ {
149
+ "path": "dashboard/_headers",
150
+ "bytes": 97,
151
+ "sha256": "e51f28dc538e70f2cc62e69b084738fdd90191c4387a45fa626d54e96f828063"
152
+ },
153
+ {
154
+ "path": "dashboard/bootstrap/action.js",
155
+ "bytes": 10454,
156
+ "sha256": "9d4559fcd73c82006c36891f01b6747001fbce4e5c578e83addbf5251b320dc4"
157
+ },
158
+ {
159
+ "path": "dashboard/bootstrap/api.ts",
160
+ "bytes": 79,
161
+ "sha256": "c9c98a88a18147c0fd473361709f71624354b3e3e3a17ce0a686e387acf00826"
162
+ },
163
+ {
164
+ "path": "dashboard/bootstrap/facet.js",
165
+ "bytes": 39320,
166
+ "sha256": "0c9e05c236480046a3588e84a637da1948505b7c4be9ceb65f230fa3a6ede3bf"
167
+ },
168
+ {
169
+ "path": "dashboard/bootstrap/manifest.json",
170
+ "bytes": 57,
171
+ "sha256": "a43aecf3c96f74f475de4e63011b28f3c2cb499ea5170e2105276a535dbd8d4a"
172
+ },
173
+ {
174
+ "path": "dashboard/bootstrap/openapi.json",
175
+ "bytes": 362,
176
+ "sha256": "d70572ce094df85c5df2cc4e316edcee1e84176e716385245e2998aab884bc0b"
177
+ },
178
+ {
179
+ "path": "dashboard/bootstrap/release.json",
180
+ "bytes": 484,
181
+ "sha256": "854c8963402c101bddd892268354cfec6fed83b288b803dfccf617ffac75bfa9"
182
+ },
183
+ {
184
+ "path": "dashboard/bootstrap/schema.json",
185
+ "bytes": 2,
186
+ "sha256": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a"
187
+ },
188
+ {
189
+ "path": "dashboard/index.html",
190
+ "bytes": 6541,
191
+ "sha256": "a4d4f20b479a72cf08fa96f2d392ce4084178925a56bc0fdce0d00dbeb7a7757"
192
+ },
193
+ {
194
+ "path": "migrations/0001.sql",
195
+ "bytes": 1063,
196
+ "sha256": "71466fadf22e00f0413c4ebd107b4d04cf71fae5f4daf4132286704a8b1edbd8"
197
+ },
198
+ {
199
+ "path": "migrations/0002_project_aliases.sql",
200
+ "bytes": 266,
201
+ "sha256": "8bbc9a6948986ac3e902f05164a350abac6c9fb7e764ffa2de6d14cf2a38c2cf"
202
+ },
203
+ {
204
+ "path": "migrations/0003_cli_login.sql",
205
+ "bytes": 231,
206
+ "sha256": "8a7583498b3cae5a2264cf5a2a1cbbfc3f42d594b56e42b2f80f82aa974d489d"
207
+ },
208
+ {
209
+ "path": "migrations/0004_retention.sql",
210
+ "bytes": 225,
211
+ "sha256": "572351d7b6f6378332043f58d5b5590782921467918825c0b36558740f5698ac"
212
+ },
213
+ {
214
+ "path": "migrations/0005_project_deletion.sql",
215
+ "bytes": 565,
216
+ "sha256": "ffef9c0b06a4eb480f7d7e5e48b4b1218ee1b36085bedf34f9a767c9ef0da6be"
217
+ },
218
+ {
219
+ "path": "migrations/0006_platform_installation.sql",
220
+ "bytes": 291,
221
+ "sha256": "47ba8ec264f6024df79dcc29b563d6e2ca9c480f9433286c0e50aabee3f95750"
222
+ },
223
+ {
224
+ "path": "runtime.js",
225
+ "bytes": 346794,
226
+ "sha256": "c8024177c44fd8cd7dd7b0fa3b39af1649d43a1e8d86d2067ce644eafb387e70"
227
+ }
228
+ ],
229
+ "digest": "b2a9b9ba43b5bd2514c26eb40e9e99792b1a20387d8503f9284dc853781fd78e"
230
+ }
@@ -0,0 +1,8 @@
1
+ PRAGMA foreign_keys=ON;
2
+ CREATE TABLE IF NOT EXISTS customers (id TEXT PRIMARY KEY,name TEXT NOT NULL,createdAt INTEGER NOT NULL);
3
+ CREATE TABLE IF NOT EXISTS projects (id TEXT PRIMARY KEY,customerId TEXT NOT NULL REFERENCES customers(id),name TEXT NOT NULL,createdAt INTEGER NOT NULL);
4
+ CREATE TABLE IF NOT EXISTS environments (projectId TEXT NOT NULL REFERENCES projects(id),env TEXT NOT NULL CHECK(env IN ('dev','prod')),origins TEXT NOT NULL DEFAULT '[]',oidc TEXT,PRIMARY KEY(projectId,env));
5
+ CREATE TABLE IF NOT EXISTS members (email TEXT PRIMARY KEY,role TEXT NOT NULL CHECK(role IN ('owner','editor','viewer')));
6
+ CREATE TABLE IF NOT EXISTS credentials (hash TEXT PRIMARY KEY,projectId TEXT NOT NULL REFERENCES projects(id),actor TEXT NOT NULL,expiresAt INTEGER NOT NULL,revoked INTEGER NOT NULL DEFAULT 0);
7
+ CREATE TABLE IF NOT EXISTS audit (id TEXT PRIMARY KEY,at INTEGER NOT NULL,actor TEXT NOT NULL,projectId TEXT,env TEXT,operation TEXT NOT NULL,status TEXT NOT NULL,detail TEXT NOT NULL);
8
+ CREATE INDEX IF NOT EXISTS audit_project ON audit(projectId,at);
@@ -0,0 +1,6 @@
1
+ -- Permanent names: never reuse an alias for another project, even after deletion.
2
+ CREATE TABLE project_aliases (
3
+ projectId TEXT PRIMARY KEY REFERENCES projects(id),
4
+ alias TEXT NOT NULL UNIQUE,
5
+ published INTEGER NOT NULL DEFAULT 0 CHECK(published IN (0,1))
6
+ );
@@ -0,0 +1,9 @@
1
+ CREATE TABLE cli_logins (
2
+ id TEXT PRIMARY KEY,
3
+ secretHash TEXT NOT NULL,
4
+ publicKey TEXT NOT NULL,
5
+ code TEXT NOT NULL,
6
+ expiresAt INTEGER NOT NULL,
7
+ payload TEXT
8
+ );
9
+ CREATE INDEX cli_logins_expiry ON cli_logins(expiresAt);
@@ -0,0 +1,4 @@
1
+ CREATE TABLE maintenance (id INTEGER PRIMARY KEY CHECK(id=1),next INTEGER NOT NULL);
2
+ INSERT INTO maintenance VALUES (1,0);
3
+ CREATE INDEX audit_retention ON audit(at);
4
+ CREATE INDEX credentials_expiry ON credentials(expiresAt);
@@ -0,0 +1,11 @@
1
+ -- Keep short URLs permanently reserved without keeping deleted projects alive.
2
+ CREATE TABLE project_aliases_next (
3
+ projectId TEXT PRIMARY KEY,
4
+ alias TEXT NOT NULL UNIQUE,
5
+ published INTEGER NOT NULL DEFAULT 0 CHECK(published IN (0,1))
6
+ );
7
+ INSERT INTO project_aliases_next SELECT * FROM project_aliases;
8
+ DROP TABLE project_aliases;
9
+ ALTER TABLE project_aliases_next RENAME TO project_aliases;
10
+ -- A durable control-plane barrier: failed cleanup can be retried, not reopened.
11
+ CREATE TABLE project_deletions (projectId TEXT PRIMARY KEY,startedAt INTEGER NOT NULL);
@@ -0,0 +1,8 @@
1
+ CREATE TABLE IF NOT EXISTS flare_installation (
2
+ singleton INTEGER PRIMARY KEY CHECK(singleton=1),
3
+ installation_id TEXT NOT NULL UNIQUE,
4
+ state TEXT NOT NULL CHECK(json_valid(state)),
5
+ revision INTEGER NOT NULL DEFAULT 0,
6
+ lock_owner TEXT,
7
+ lock_expires INTEGER NOT NULL DEFAULT 0
8
+ );