@continuous-excellence/ze-great-dashboard-aws 0.31.0 → 0.31.1
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 +81 -78
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,74 +1,56 @@
|
|
|
1
1
|
# Ze Great Dashboard on AWS
|
|
2
2
|
|
|
3
|
-
`@continuous-excellence/ze-great-dashboard-aws` packages a board for a private AWS Lambda
|
|
4
|
-
deployment. It includes the
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
consumer
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
This deployment path is intended for teams that already operate AWS and have a protected gateway
|
|
26
|
-
such as API Gateway or an ALB. It deliberately does not create a public endpoint, choose an
|
|
27
|
-
authentication policy, or manage secret values.
|
|
28
|
-
|
|
29
|
-
If you are evaluating the dashboard, start with the repository's
|
|
30
|
-
[local setup](https://github.com/robertfmurdock/ze-great-dashboard#run-it-locally). You do not need
|
|
31
|
-
AWS to try it.
|
|
32
|
-
|
|
33
|
-
## What you need
|
|
3
|
+
`@continuous-excellence/ze-great-dashboard-aws` validates and packages a board for a private AWS Lambda
|
|
4
|
+
or ECS deployment. It includes the server runtime, deployment CLI, and CloudFormation
|
|
5
|
+
templates. The matching immutable browser client is published separately as
|
|
6
|
+
`@continuous-excellence/ze-great-dashboard-client` and is selected automatically unless you provide
|
|
7
|
+
another exact asset URL.
|
|
8
|
+
|
|
9
|
+
This package is for teams that already operate AWS and can provide a protected entry path:
|
|
10
|
+
|
|
11
|
+
- Lambda requires a consumer-owned API Gateway, ALB, or equivalent gateway with private invocation
|
|
12
|
+
permission.
|
|
13
|
+
- ECS requires consumer-owned subnets, security groups, and protected load balancing or routing for
|
|
14
|
+
the long-lived Fargate service.
|
|
15
|
+
|
|
16
|
+
In both modes, a consumer-owned gateway or load balancer defines the public entry and authentication
|
|
17
|
+
boundary.
|
|
18
|
+
|
|
19
|
+
The templates create no public endpoint, choose no authentication policy, and manage no secret
|
|
20
|
+
values. To evaluate the dashboard without AWS, start with the
|
|
21
|
+
[local setup](https://github.com/robertfmurdock/ze-great-dashboard#try-it).
|
|
22
|
+
|
|
23
|
+
## Prerequisites
|
|
34
24
|
|
|
35
25
|
- Node.js 22 or newer, npm, the AWS CLI, and `jq`.
|
|
36
|
-
- An AWS administrator for
|
|
37
|
-
- A pre-existing
|
|
38
|
-
will deploy the dashboard.
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
3. The consumer connects the returned `ServerFunctionArn` to its protected gateway.
|
|
58
|
-
4. GitHub Actions can repeat the package-and-deploy step after the administrator configures the two
|
|
59
|
-
reviewed role ARNs.
|
|
60
|
-
|
|
61
|
-
## The normal application workflow
|
|
62
|
-
|
|
63
|
-
Pin an exact package version in the repository that owns the deployment:
|
|
26
|
+
- An AWS administrator for one-time bootstrap.
|
|
27
|
+
- A pre-existing account-level GitHub OIDC provider and protected GitHub Environment when GitHub
|
|
28
|
+
Actions will deploy the dashboard.
|
|
29
|
+
- Consumer-owned networking, gateway or load balancing, authentication, and runtime health checks.
|
|
30
|
+
|
|
31
|
+
## Choose and bootstrap a compute mode
|
|
32
|
+
|
|
33
|
+
Lambda is the compatibility default. Select ECS with `--mode ecs` when running `bootstrap init`.
|
|
34
|
+
The choice is stored in `dashboard-bootstrap.json` and generated application parameters as
|
|
35
|
+
`ComputeMode`; older files without the field mean Lambda.
|
|
36
|
+
|
|
37
|
+
An explicit mode that conflicts with persisted configuration fails. Changing between Lambda and ECS
|
|
38
|
+
requires regenerated, administrator-reviewed bootstrap and application parameters—it is not a
|
|
39
|
+
routine package option.
|
|
40
|
+
|
|
41
|
+
Follow the [AWS bootstrap guide](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/aws-bootstrap.md),
|
|
42
|
+
then the [Lambda deployment guide](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/aws-setup.md).
|
|
43
|
+
|
|
44
|
+
## Package a deployment
|
|
45
|
+
|
|
46
|
+
Pin the reviewed package version in the repository that owns the deployment:
|
|
64
47
|
|
|
65
48
|
```sh
|
|
66
49
|
npm install --save-exact @continuous-excellence/ze-great-dashboard-aws
|
|
67
50
|
```
|
|
68
51
|
|
|
69
|
-
Append `@version` when installing a previously reviewed release rather than the current one.
|
|
70
|
-
|
|
71
|
-
After bootstrap is complete, the recurring workflow is only:
|
|
52
|
+
Append `@version` when installing a previously reviewed release rather than the current one. After
|
|
53
|
+
bootstrap, generate and diagnose application parameters, then package the board:
|
|
72
54
|
|
|
73
55
|
```sh
|
|
74
56
|
npm exec -- ze-great-dashboard-aws parameters \
|
|
@@ -85,29 +67,50 @@ npm exec -- ze-great-dashboard-aws package \
|
|
|
85
67
|
--output aws-dashboard-release
|
|
86
68
|
```
|
|
87
69
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
Changing `board.yaml` or upgrading the pinned package uses this same path.
|
|
70
|
+
For ECS, the persisted parameters select the ECS template and `package` also requires an immutable,
|
|
71
|
+
digest-pinned image through `--image`. The generated `deployment.json` contains structured upload
|
|
72
|
+
and CloudFormation command arguments for the approved deployment process to invoke.
|
|
92
73
|
|
|
93
|
-
|
|
74
|
+
`package` writes release-specific `parameters.json`, `deployment.json`, and `template.yml`, plus
|
|
75
|
+
`lambda.zip` for Lambda. Changing `board.yaml` or the pinned package version uses this same path.
|
|
76
|
+
Run the read-only `bootstrap check` before every deployment.
|
|
94
77
|
|
|
95
|
-
|
|
96
|
-
| --- | --- |
|
|
97
|
-
| Board validation and Lambda packaging | Board content and source access |
|
|
98
|
-
| Server runtime and CloudFormation templates | The immutable browser asset host and authentication |
|
|
99
|
-
| Private application CloudFormation template | AWS account administration |
|
|
100
|
-
| Restricted bootstrap templates | Secret values and the credential-map ARN |
|
|
101
|
-
| Read-only preflight and consistency checks | Reviewing and executing AWS changes |
|
|
78
|
+
## Private source credentials
|
|
102
79
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
80
|
+
Public GitHub repositories and unauthenticated HTTP sources work without credentials. For private
|
|
81
|
+
sources, set `SecretReference` to the ARN of one consumer-owned Secrets Manager JSON value or
|
|
82
|
+
Parameter Store `SecureString`, for example:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{"GITHUB_TOKEN":"github_pat_…"}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The board references `GITHUB_TOKEN` through `token_env`; the credential value never belongs in the
|
|
89
|
+
board, bootstrap manifest, CloudFormation parameters, runtime environment variables, logs, API
|
|
90
|
+
responses, or browser. The runtime reads only the exact secret or parameter authorized by the
|
|
91
|
+
application role, resolves configured `token_env` names only at Lambda cold start, and fails closed
|
|
92
|
+
when a key is absent.
|
|
93
|
+
|
|
94
|
+
## Ownership boundaries
|
|
95
|
+
|
|
96
|
+
| Package responsibility | Consumer responsibility |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| Board validation and release packaging | Board content and source permissions |
|
|
99
|
+
| Server runtime and application templates | AWS account and network administration |
|
|
100
|
+
| Restricted bootstrap templates | Reviewing and executing AWS changes |
|
|
101
|
+
| Default immutable client asset selection | Approval of alternate asset hosts |
|
|
102
|
+
| Read-only preflight, doctor, and consistency checks | Gateway, authentication, and health checks |
|
|
103
|
+
| Exact secret-resource integration | Secret values, rotation, and credential-map ARN |
|
|
104
|
+
|
|
105
|
+
Bootstrap commands do not perform mutating AWS operations. They emit plans, parameters, captures,
|
|
106
|
+
and command arguments for an administrator to review and invoke. `bootstrap check` is the read-only
|
|
107
|
+
live diagnostic used before routine deployments; when it fails, use the
|
|
108
|
+
[bootstrap upgrade runbook](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/aws-bootstrap-upgrade.md).
|
|
106
109
|
|
|
107
110
|
## References
|
|
108
111
|
|
|
109
112
|
- [Board configuration](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/board-configuration.md)
|
|
110
113
|
- [Administrator bootstrap](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/aws-bootstrap.md)
|
|
111
|
-
- [
|
|
114
|
+
- [Lambda deployment](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/aws-setup.md)
|
|
112
115
|
- [GitHub Actions deployment](https://github.com/robertfmurdock/ze-great-dashboard/blob/main/docs/aws-github-actions.md)
|
|
113
116
|
- [Issue tracker](https://github.com/robertfmurdock/ze-great-dashboard/issues)
|
package/package.json
CHANGED