create-kumiko-app 0.340.0 → 0.342.0
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/feature-manifest.json +63 -7
- package/package.json +5 -5
package/feature-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "samples/apps/use-all-bundled APP_FEATURES (composeFeatures includeBundled + signup)",
|
|
3
|
-
"featureCount":
|
|
3
|
+
"featureCount": 81,
|
|
4
4
|
"features": [
|
|
5
5
|
{
|
|
6
6
|
"name": "admin-shell",
|
|
@@ -55,14 +55,39 @@
|
|
|
55
55
|
"toggleableDefault": null,
|
|
56
56
|
"requires": [
|
|
57
57
|
"tenant",
|
|
58
|
-
"user"
|
|
58
|
+
"user",
|
|
59
|
+
"config"
|
|
59
60
|
],
|
|
60
61
|
"optionalRequires": [],
|
|
61
62
|
"configReads": [],
|
|
62
63
|
"exposesApis": [],
|
|
63
64
|
"usesApis": [],
|
|
64
65
|
"extensionsUsed": [],
|
|
65
|
-
"configKeys": [
|
|
66
|
+
"configKeys": [
|
|
67
|
+
{
|
|
68
|
+
"key": "escape-hatch-retention-days",
|
|
69
|
+
"qualifiedName": "audit:config:escape-hatch-retention-days",
|
|
70
|
+
"type": "number",
|
|
71
|
+
"scope": "system",
|
|
72
|
+
"default": 90,
|
|
73
|
+
"encrypted": false,
|
|
74
|
+
"computed": false,
|
|
75
|
+
"validated": false,
|
|
76
|
+
"options": null,
|
|
77
|
+
"bounds": {
|
|
78
|
+
"min": 1
|
|
79
|
+
},
|
|
80
|
+
"pattern": null,
|
|
81
|
+
"writeRoles": [
|
|
82
|
+
"system"
|
|
83
|
+
],
|
|
84
|
+
"readRoles": [
|
|
85
|
+
"TenantAdmin",
|
|
86
|
+
"Admin",
|
|
87
|
+
"SystemAdmin"
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
],
|
|
66
91
|
"secrets": [],
|
|
67
92
|
"writeHandlers": [],
|
|
68
93
|
"uiHints": {
|
|
@@ -102,6 +127,7 @@
|
|
|
102
127
|
"auth-email-password:write:reset-password",
|
|
103
128
|
"auth-email-password:write:signup-confirm",
|
|
104
129
|
"auth-email-password:write:signup-request",
|
|
130
|
+
"auth-email-password:write:system-invite-create",
|
|
105
131
|
"auth-email-password:write:verify-email"
|
|
106
132
|
],
|
|
107
133
|
"uiHints": {
|
|
@@ -193,9 +219,7 @@
|
|
|
193
219
|
"bounds": null,
|
|
194
220
|
"pattern": null,
|
|
195
221
|
"writeRoles": [
|
|
196
|
-
"
|
|
197
|
-
"Admin",
|
|
198
|
-
"SystemAdmin"
|
|
222
|
+
"system"
|
|
199
223
|
],
|
|
200
224
|
"readRoles": [
|
|
201
225
|
"all"
|
|
@@ -516,7 +540,7 @@
|
|
|
516
540
|
},
|
|
517
541
|
{
|
|
518
542
|
"name": "channel-telegram",
|
|
519
|
-
"description": "Sends delivery notifications through the Telegram Bot API (`sendMessage`, plain text), registered as the `telegram` channel in the delivery system. Tenant-owned chat target: reach it only via `ctx.notify(type, { route: { telegram: \"<chat id or @channel>\" } })`. The bot token is the tenant secret `channel-telegram:secret:bot-token`; the token never reaches logs or delivery attempts. Requires `delivery` and `secrets`. The API base URL and request timeout are app options of `createChannelTelegramFeature(opts)`, never tenant config.",
|
|
543
|
+
"description": "Sends delivery notifications through the Telegram Bot API (`sendMessage`, plain text), registered as the `telegram` channel in the delivery system. Tenant-owned chat target: reach it only via `ctx.notify(type, { route: { telegram: \"<chat id or @channel>\" } })`. The bot token is the tenant secret `channel-telegram:secret:bot-token`; the token never reaches logs or delivery attempts. Requires `delivery` and `secrets`. The API base URL, its host allowlist (`allowedHosts`, default `api.telegram.org`), `requireHttps` (default true; boot fails on a mismatch) and the request timeout are app options of `createChannelTelegramFeature(opts)`, never tenant config.",
|
|
520
544
|
"toggleableDefault": null,
|
|
521
545
|
"requires": [
|
|
522
546
|
"delivery",
|
|
@@ -3053,6 +3077,38 @@
|
|
|
3053
3077
|
"recommended": true
|
|
3054
3078
|
}
|
|
3055
3079
|
},
|
|
3080
|
+
{
|
|
3081
|
+
"name": "waitlist",
|
|
3082
|
+
"description": "Public waitlist: an anonymous, rate-limited `submit` handler collects name, email and optional company, portfolio and message (a honeypot field and per-email dedupe keep bots and repeat submits out, and the response never reveals whether an address was already listed), and mails the submitter a confirmation. SystemAdmins review entries in a list screen and invite or reject them; an invite creates the entrant's own tenant (or joins one shared tenant) and mails an accept link with the configured membership role, never a global role. Entries are platform-wide, their personal data is crypto-shredding-ready, and the EXT_USER_DATA hooks export and erase entries matching a user's email.",
|
|
3083
|
+
"toggleableDefault": null,
|
|
3084
|
+
"requires": [
|
|
3085
|
+
"tenant",
|
|
3086
|
+
"auth-email-password",
|
|
3087
|
+
"user-data-rights"
|
|
3088
|
+
],
|
|
3089
|
+
"optionalRequires": [],
|
|
3090
|
+
"configReads": [],
|
|
3091
|
+
"exposesApis": [],
|
|
3092
|
+
"usesApis": [],
|
|
3093
|
+
"extensionsUsed": [
|
|
3094
|
+
{
|
|
3095
|
+
"extensionName": "userData",
|
|
3096
|
+
"entityName": "waitlistEntry"
|
|
3097
|
+
}
|
|
3098
|
+
],
|
|
3099
|
+
"configKeys": [],
|
|
3100
|
+
"secrets": [],
|
|
3101
|
+
"writeHandlers": [
|
|
3102
|
+
"waitlist:write:invite",
|
|
3103
|
+
"waitlist:write:reject",
|
|
3104
|
+
"waitlist:write:submit"
|
|
3105
|
+
],
|
|
3106
|
+
"uiHints": {
|
|
3107
|
+
"displayLabel": "Waitlist",
|
|
3108
|
+
"category": "data",
|
|
3109
|
+
"recommended": false
|
|
3110
|
+
}
|
|
3111
|
+
},
|
|
3056
3112
|
{
|
|
3057
3113
|
"name": "workflow-runner",
|
|
3058
3114
|
"description": "Writes the run-envelope (`workflow.run-started` / `workflow.run-completed` / `workflow.run-failed`) for a workflow run onto its `workflow-run` aggregate stream. Provides `startAndRunWorkflow` and `registerEventTrigger` for consumer features to wire up `defineWorkflow`-based workflows against domain events. Registers no workflows itself. Runs the resume loop for suspended `wait`/`retry`/`waitForEvent` steps (`resume-due-runs` job + `resume-run` handler); `registerEventTrigger` wires an event-wakeup subscriber per workflow that declares `awaits` so a `waitForEvent` step resumes as soon as its awaited event arrives, not just on timeout.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-kumiko-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.342.0",
|
|
4
4
|
"description": "`bun create kumiko-app <name>` — scaffold a new Kumiko app with an interactive feature picker.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@cosmicdrift/kumiko-dev-server": "0.
|
|
31
|
-
"@cosmicdrift/kumiko-framework": "0.
|
|
32
|
-
"@cosmicdrift/kumiko-server-runtime": "0.
|
|
33
|
-
"@cosmicdrift/kumiko-testing": "0.
|
|
30
|
+
"@cosmicdrift/kumiko-dev-server": "0.342.0",
|
|
31
|
+
"@cosmicdrift/kumiko-framework": "0.342.0",
|
|
32
|
+
"@cosmicdrift/kumiko-server-runtime": "0.342.0",
|
|
33
|
+
"@cosmicdrift/kumiko-testing": "0.342.0",
|
|
34
34
|
"@inquirer/core": "^10.0.0",
|
|
35
35
|
"@inquirer/prompts": "^7.4.0"
|
|
36
36
|
},
|