unoverse 0.1.97 → 0.1.99
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.
|
@@ -41,7 +41,11 @@ provider "aws" {
|
|
|
41
41
|
# membership list, so it stays correct as the ground grows without anyone maintaining it.
|
|
42
42
|
resource "aws_resourcegroups_group" "universe" {
|
|
43
43
|
name = var.name
|
|
44
|
-
description
|
|
44
|
+
# AWS Resource Groups allow ONLY [\sa-zA-Z0-9_.-] in a description — no colon, no
|
|
45
|
+
# parentheses. "unoverse universe: name" failed CreateGroup after four minutes of ALB
|
|
46
|
+
# provisioning, and terraform validate cannot see it: the rule lives in the AWS API, not
|
|
47
|
+
# in the schema.
|
|
48
|
+
description = "unoverse universe ${var.name}"
|
|
45
49
|
|
|
46
50
|
resource_query {
|
|
47
51
|
query = jsonencode({
|
|
@@ -149,7 +153,9 @@ resource "aws_security_group" "app" {
|
|
|
149
153
|
vpc_id = data.aws_vpc.default.id
|
|
150
154
|
|
|
151
155
|
ingress {
|
|
152
|
-
|
|
156
|
+
# Security group descriptions forbid angle brackets. "api.<domain>" reads naturally in
|
|
157
|
+
# prose and is rejected by the API.
|
|
158
|
+
description = "Platform api host, from the ALB only"
|
|
153
159
|
from_port = 4105
|
|
154
160
|
to_port = 4105
|
|
155
161
|
protocol = "tcp"
|
package/operator/lib/deploy.sh
CHANGED
|
@@ -377,6 +377,25 @@ _ensure_ground_config() {
|
|
|
377
377
|
info "${DIM}(Auth0 or any OIDC provider; the issuer looks like https://your-tenant.auth0.com)${NC}"
|
|
378
378
|
fi
|
|
379
379
|
fi
|
|
380
|
+
# AWS ONLY. Cognito needs a first administrator, and nothing else in the CLI collects an
|
|
381
|
+
# email — so this was left FILL_ME and the deploy gave up. It is one question.
|
|
382
|
+
if [ "$cloud" = "aws" ] && grep -q '^admin_email[[:space:]]*=[[:space:]]*"FILL_ME"' "$tfv" 2>/dev/null; then
|
|
383
|
+
local admin_email=""
|
|
384
|
+
echo ""
|
|
385
|
+
echo -e " ${CYAN}${BOLD}Who is the first administrator?${NC}"
|
|
386
|
+
echo -e " ${DIM}They get a Cognito account with every role, and an invitation by email.${NC}"
|
|
387
|
+
echo ""
|
|
388
|
+
while [ -z "$admin_email" ]; do
|
|
389
|
+
read -r -p " Email: " admin_email
|
|
390
|
+
case "$admin_email" in
|
|
391
|
+
*@*.*) : ;;
|
|
392
|
+
*) [ -n "$admin_email" ] && warn "That does not look like an email address"; admin_email="" ;;
|
|
393
|
+
esac
|
|
394
|
+
done
|
|
395
|
+
_tf_put admin_email "$admin_email"
|
|
396
|
+
ok "First administrator: ${BOLD}$admin_email${NC}"
|
|
397
|
+
fi
|
|
398
|
+
|
|
380
399
|
_tf_fill auth_issuer AUTH_ISSUER "AUTH_ISSUER"
|
|
381
400
|
_tf_fill auth_client_id AUTH_CLIENT_ID "AUTH_CLIENT_ID"
|
|
382
401
|
|
|
@@ -384,9 +403,16 @@ _ensure_ground_config() {
|
|
|
384
403
|
# it declared a complete file blank.
|
|
385
404
|
if grep -qE '=[[:space:]]*"FILL_ME"' "$tfv" 2>/dev/null; then
|
|
386
405
|
echo ""
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
406
|
+
# NAME THE VALUES, AND NEVER HAND BACK TERRAFORM. This said "fill them, then cd
|
|
407
|
+
# infra/<cloud> && terraform init && terraform apply" — the homework this CLI exists to
|
|
408
|
+
# remove — and then named `unoverse deploy` without the ground, which on a universe with
|
|
409
|
+
# two grounds is a command that refuses. Say which values, say where, say the command
|
|
410
|
+
# that resumes.
|
|
411
|
+
warn "These still need a value in ${BOLD}infra/$cloud/terraform.tfvars${NC}:"
|
|
412
|
+
echo ""
|
|
413
|
+
grep -nE '=[[:space:]]*"FILL_ME"' "$tfv" | sed -E 's/^([0-9]+):([a-z_]+).*/ line \1 \2/' | while read -r l; do echo -e " ${DIM}$l${NC}"; done
|
|
414
|
+
echo ""
|
|
415
|
+
info "Fill them in, then: ${BOLD}unoverse deploy $cloud${NC}"
|
|
390
416
|
echo ""
|
|
391
417
|
exit 1
|
|
392
418
|
fi
|
package/operator/lib/ground.sh
CHANGED
|
@@ -291,8 +291,9 @@ openai_api_key = "FILL_ME"
|
|
|
291
291
|
# hyperbrowser_api_key = "" # optional — page intelligence
|
|
292
292
|
|
|
293
293
|
oauth_callback_urls = [
|
|
294
|
-
$( if [ -n "$zone_domain" ]; then echo " \"https
|
|
294
|
+
$( if [ -n "$zone_domain" ]; then echo " \"https://canvas.$zone_domain\","; fi )
|
|
295
295
|
"http://localhost:5173", # local Studio/Canvas dev against this universe
|
|
296
|
+
# Add your Canvas URL here once a domain is set (https://canvas.<domain>).
|
|
296
297
|
]
|
|
297
298
|
|
|
298
299
|
# RBAC roles (noun:verb). Each becomes a Cognito group; put a user in the group
|
package/package.json
CHANGED