@reventlessdev/reventless-aws 3.0.0-alpha.399 → 3.0.0-alpha.400
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/CHANGELOG.md +8 -0
- package/package.json +8 -8
- package/scripts/DeployApp.res +16 -5
- package/scripts/DeployApp.res.mjs +10 -3
- package/scripts/ProvisionAccounts.res +2 -2
- package/scripts/ProvisionAccounts.res.mjs +1 -1
- package/scripts/ProvisionAdmin.res +1 -1
- package/scripts/ProvisionAdmin.res.mjs +1 -1
- package/src/adapter/Identity/IdentityProvider_Cognito_Backend.res +1 -1
- package/tests/ProvisionAccountsTest.res +1 -1
- package/tests/ProvisionAccountsTest.res.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.400 (2026-10-25)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @reventlessdev/reventless-aws
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# 3.0.0-alpha.399 (2026-10-25)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @reventlessdev/reventless-aws
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-aws",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.400",
|
|
4
4
|
"description": "AWS adapters for Reventless",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
"sury": "11.0.0",
|
|
23
23
|
"uuid": "^13.0.0",
|
|
24
24
|
"yaml": "^2.8.3",
|
|
25
|
-
"@reventlessdev/rescript-
|
|
26
|
-
"@reventlessdev/rescript-node": "2.0.0-alpha.23",
|
|
25
|
+
"@reventlessdev/rescript-effect": "1.0.0-alpha.1",
|
|
27
26
|
"@reventlessdev/rescript-jest": "1.0.0-alpha.13",
|
|
27
|
+
"@reventlessdev/rescript-node": "2.0.0-alpha.23",
|
|
28
28
|
"@reventlessdev/rescript-pulumi-aws": "3.0.0-alpha.34",
|
|
29
|
-
"@reventlessdev/rescript-
|
|
29
|
+
"@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.36",
|
|
30
30
|
"@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
|
|
31
31
|
"@reventlessdev/rescript-web": "1.0.0-alpha.8",
|
|
32
32
|
"@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
|
|
33
|
-
"@reventlessdev/reventless-
|
|
34
|
-
"@reventlessdev/reventless-
|
|
33
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.310",
|
|
34
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.207",
|
|
35
35
|
"@reventlessdev/reventless-interop": "3.0.0-alpha.42",
|
|
36
|
-
"@reventlessdev/reventless-
|
|
37
|
-
"@reventlessdev/reventless-
|
|
36
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.174",
|
|
37
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.178"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"rescript": "12.3.1",
|
package/scripts/DeployApp.res
CHANGED
|
@@ -61,7 +61,7 @@ Usage: deploy-app up|down [--manifest <path>] [--stack <name>]
|
|
|
61
61
|
Deploy an app to AWS, or remove it again.
|
|
62
62
|
|
|
63
63
|
deploy-app up Deploy the platform and every plugin, bake the component
|
|
64
|
-
manifest, create the accounts in .reventless/
|
|
64
|
+
manifest, create the accounts in .reventless/accounts.<stack>.yaml,
|
|
65
65
|
and print the web address and the sign-ins.
|
|
66
66
|
deploy-app down Remove every stack, and the Lambda layer and SSM parameter
|
|
67
67
|
\`up\` created.
|
|
@@ -495,12 +495,23 @@ let outputString = (outputs: dict<Automation.outputValue>, name: string): option
|
|
|
495
495
|
/** The stack's own accounts file beside the platform, started from the app's
|
|
496
496
|
template, or `None` when the app has no template — then there is nothing to
|
|
497
497
|
create. Per stack because the file records the ids one pool minted: sharing
|
|
498
|
-
`
|
|
499
|
-
|
|
498
|
+
`accounts.yaml` would overwrite another deployment's record of its accounts. A stack deployed
|
|
499
|
+
before the file was renamed keeps its `users.<stack>.yaml` until it is renamed. */
|
|
500
|
+
let accountsFileName = stack => `accounts.${stack}.yaml`
|
|
501
|
+
let oldAccountsFileName = stack => `users.${stack}.yaml`
|
|
500
502
|
|
|
501
503
|
let accountsFile = (~platformDir: string, ~stack: string): option<string> => {
|
|
502
|
-
let file =
|
|
503
|
-
|
|
504
|
+
let file = {
|
|
505
|
+
let current = NodePath.join([platformDir, ".reventless", accountsFileName(stack)])
|
|
506
|
+
let old = NodePath.join([platformDir, ".reventless", oldAccountsFileName(stack)])
|
|
507
|
+
if !NodeFs.existsSync(current) && NodeFs.existsSync(old) {
|
|
508
|
+
Manifest.noticeOldName(old)
|
|
509
|
+
old
|
|
510
|
+
} else {
|
|
511
|
+
current
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
let template = Manifest.templateIn(platformDir)
|
|
504
515
|
switch (NodeFs.existsSync(file), NodeFs.existsSync(template)) {
|
|
505
516
|
| (false, false) => None
|
|
506
517
|
| (true, _) => Some(file)
|
|
@@ -87,7 +87,7 @@ Usage: deploy-app up|down [--manifest <path>] [--stack <name>]
|
|
|
87
87
|
Deploy an app to AWS, or remove it again.
|
|
88
88
|
|
|
89
89
|
deploy-app up Deploy the platform and every plugin, bake the component
|
|
90
|
-
manifest, create the accounts in .reventless/
|
|
90
|
+
manifest, create the accounts in .reventless/accounts.<stack>.yaml,
|
|
91
91
|
and print the web address and the sign-ins.
|
|
92
92
|
deploy-app down Remove every stack, and the Lambda layer and SSM parameter
|
|
93
93
|
\`up\` created.
|
|
@@ -611,12 +611,18 @@ function outputString(outputs, name) {
|
|
|
611
611
|
}
|
|
612
612
|
|
|
613
613
|
function accountsFileName(stack) {
|
|
614
|
+
return `accounts.` + stack + `.yaml`;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
function oldAccountsFileName(stack) {
|
|
614
618
|
return `users.` + stack + `.yaml`;
|
|
615
619
|
}
|
|
616
620
|
|
|
617
621
|
function accountsFile(platformDir, stack) {
|
|
618
|
-
let
|
|
619
|
-
let
|
|
622
|
+
let current = Nodepath.join(platformDir, ".reventless", accountsFileName(stack));
|
|
623
|
+
let old = Nodepath.join(platformDir, ".reventless", oldAccountsFileName(stack));
|
|
624
|
+
let file = !Nodefs.existsSync(current) && Nodefs.existsSync(old) ? (AccountsManifest$Reventless.noticeOldName(old), old) : current;
|
|
625
|
+
let template = AccountsManifest$Reventless.templateIn(platformDir);
|
|
620
626
|
let match = Nodefs.existsSync(file);
|
|
621
627
|
let match$1 = Nodefs.existsSync(template);
|
|
622
628
|
if (match) {
|
|
@@ -946,6 +952,7 @@ export {
|
|
|
946
952
|
deploy,
|
|
947
953
|
outputString,
|
|
948
954
|
accountsFileName,
|
|
955
|
+
oldAccountsFileName,
|
|
949
956
|
accountsFile,
|
|
950
957
|
signInLines,
|
|
951
958
|
up,
|
|
@@ -17,7 +17,7 @@ one alone is enough.
|
|
|
17
17
|
pnpm exec provision-accounts
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
It reads `.reventless/
|
|
20
|
+
It reads `.reventless/accounts.yaml`, and knows nothing about any particular
|
|
21
21
|
application's cast: the manifest belongs to whoever is deploying. A demo's four
|
|
22
22
|
roles and a company's twelve staff are the same run. Which pool it writes to is
|
|
23
23
|
[ProvisionProvider]'s question, and usually needs no argument either.
|
|
@@ -76,7 +76,7 @@ Turn a declared cast of accounts into working sign-ins.
|
|
|
76
76
|
created the pool or was handed one.
|
|
77
77
|
--stack <name> Read that output from this stack instead of the selected
|
|
78
78
|
one. The run always names the stack it used.
|
|
79
|
-
--file <path> The manifest. Defaults to .reventless/
|
|
79
|
+
--file <path> The manifest. Defaults to .reventless/accounts.yaml relative
|
|
80
80
|
to the working directory, which is where both platforms
|
|
81
81
|
keep it.
|
|
82
82
|
|
|
@@ -39,7 +39,7 @@ Turn a declared cast of accounts into working sign-ins.
|
|
|
39
39
|
created the pool or was handed one.
|
|
40
40
|
--stack <name> Read that output from this stack instead of the selected
|
|
41
41
|
one. The run always names the stack it used.
|
|
42
|
-
--file <path> The manifest. Defaults to .reventless/
|
|
42
|
+
--file <path> The manifest. Defaults to .reventless/accounts.yaml relative
|
|
43
43
|
to the working directory, which is where both platforms
|
|
44
44
|
keep it.
|
|
45
45
|
|
|
@@ -198,7 +198,7 @@ ${passwordNote}
|
|
|
198
198
|
This script bootstraps the first account only, which is the one that cannot be
|
|
199
199
|
made through a signed-in session because there is no signed-in session yet. The
|
|
200
200
|
rest of the cast is a list rather than a command: declare it in
|
|
201
|
-
.reventless/
|
|
201
|
+
.reventless/accounts.yaml and run \`pnpm exec provision-accounts\`.`
|
|
202
202
|
|
|
203
203
|
type request = {email: string, providerId?: string, stack?: string}
|
|
204
204
|
|
|
@@ -119,7 +119,7 @@ The first administrator is ready.
|
|
|
119
119
|
This script bootstraps the first account only, which is the one that cannot be
|
|
120
120
|
made through a signed-in session because there is no signed-in session yet. The
|
|
121
121
|
rest of the cast is a list rather than a command: declare it in
|
|
122
|
-
.reventless/
|
|
122
|
+
.reventless/accounts.yaml and run \`pnpm exec provision-accounts\`.`;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
function parseRequest(argv) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// The identity provider a deployed platform provisions: principals in its
|
|
2
2
|
// Cognito pool, and each new one's domain id in the identity store the pool's
|
|
3
3
|
// pre-token trigger reads. The AWS counterpart of the local platform's
|
|
4
|
-
// `
|
|
4
|
+
// `Capability_IdentityProvider_AccountStore`, and reached the same way — on the
|
|
5
5
|
// capability record a slice's `translate` receives.
|
|
6
6
|
//
|
|
7
7
|
// Pulumi-free so it ships in the slice Lambda. The pool calls go through an
|
|
@@ -147,7 +147,7 @@ describe("ProvisionAccounts.provision", () => {
|
|
|
147
147
|
|
|
148
148
|
test("a refused pool leaves the manifest untouched", async () => {
|
|
149
149
|
let dir = NodeFs.mkdtempSync(NodePath.join([NodeOs.tmpdir(), "provision-accounts-"]))
|
|
150
|
-
let file = NodePath.join([dir, "
|
|
150
|
+
let file = NodePath.join([dir, "accounts.yaml"])
|
|
151
151
|
NodeFs.writeFileSync(file, manifest)
|
|
152
152
|
let refuse = async (~providerId as _, ~usernames as _) => Error("pool signs in on email")
|
|
153
153
|
let outcome = await Provision.provision(
|
|
@@ -147,7 +147,7 @@ globalThis.describe("ProvisionAccounts.provision", () => {
|
|
|
147
147
|
`;
|
|
148
148
|
globalThis.test("a refused pool leaves the manifest untouched", async () => {
|
|
149
149
|
let dir = Nodefs.mkdtempSync(Nodepath.join(Nodeos.tmpdir(), "provision-accounts-"));
|
|
150
|
-
let file = Nodepath.join(dir, "
|
|
150
|
+
let file = Nodepath.join(dir, "accounts.yaml");
|
|
151
151
|
Nodefs.writeFileSync(file, manifest, "utf8");
|
|
152
152
|
let refuse = async (param, param$1) => ({
|
|
153
153
|
TAG: "Error",
|