@getstrata/starter 1.1.2 → 1.1.3
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/dist/cli.js +6 -4
- package/dist/templates/package.json +3 -3
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -2638,6 +2638,8 @@ function renderEnvExample(projectName, layers) {
|
|
|
2638
2638
|
];
|
|
2639
2639
|
lines.push("APP_DEBUG=false");
|
|
2640
2640
|
lines.push("FEATURE_PUBLIC_READS=false");
|
|
2641
|
+
lines.push("# wrapWebPublicRead / wrapPublicRead require login when false (production-safe default).");
|
|
2642
|
+
lines.push("# Local storefronts/catalogs may set true in .env. Production boot rejects FEATURE_PUBLIC_READS=true.");
|
|
2641
2643
|
lines.push("FEATURE_SIEM_EXPORT=false");
|
|
2642
2644
|
lines.push("FEATURE_REGISTRATION=true");
|
|
2643
2645
|
lines.push("FEATURE_SAML=false");
|
|
@@ -2856,9 +2858,9 @@ function renderPackageJson(projectName, options = {}) {
|
|
|
2856
2858
|
"@getstrata/cli": "workspace:*",
|
|
2857
2859
|
"@getstrata/core": "workspace:*"
|
|
2858
2860
|
} : {
|
|
2859
|
-
"@getstrata/bootstrap": "^1.1.
|
|
2860
|
-
"@getstrata/cli": "^1.1.
|
|
2861
|
-
"@getstrata/core": "^1.1.
|
|
2861
|
+
"@getstrata/bootstrap": "^1.1.3",
|
|
2862
|
+
"@getstrata/cli": "^1.1.3",
|
|
2863
|
+
"@getstrata/core": "^1.1.3"
|
|
2862
2864
|
};
|
|
2863
2865
|
coreDeps.eta = "^4.6.0";
|
|
2864
2866
|
if (options.layers?.database === "mysql") {
|
|
@@ -3142,7 +3144,7 @@ The image sets \`APP_ENV=production\` and \`AUTH_DEV_HEADERS=false\`; everything
|
|
|
3142
3144
|
- Replace every \`change-me\` placeholder in \`.env\`. The guard rejects the values this generator wrote, not just empty ones.
|
|
3143
3145
|
- Set \`APP_URL\` to the public origin (for example \`https://app.example.com\`). Signed links and redirects are built from it; localhost is rejected.
|
|
3144
3146
|
- Set \`AUTH_DEV_HEADERS=false\`.
|
|
3145
|
-
- Set \`FEATURE_PUBLIC_READS=false\`.
|
|
3147
|
+
- Set \`FEATURE_PUBLIC_READS=false\`. Generated \`.env.example\` already ships \`false\` so \`wrapWebPublicRead\` requires a login. Local storefronts may set \`true\` in \`.env\` for an anonymous catalog; \`assertProductionSecrets()\` rejects \`true\` in production. Do not ship a public-reads production boot.
|
|
3146
3148
|
- Cross-origin browser calls are off in production until you set \`CORS_ALLOWED_ORIGINS\` to explicit origins. A \`*\` entry is rejected. Non-browser clients are unaffected.
|
|
3147
3149
|
- Behind a reverse proxy or load balancer, set \`TRUST_FORWARDED_FOR=true\` so throttles and session records see the client address instead of the proxy. Only the rightmost public hop of \`X-Forwarded-For\` is trusted.
|
|
3148
3150
|
${authUsesCookie(layers.auth) ? "- Set `SESSION_SECRET` to 32+ characters.\n" : ""}${authUsesToken(layers.auth) ? "- Set `TOKEN_HASH_PEPPER`.\n" : ""}${layers.extras.scim ? "- Set `SCIM_BEARER_TOKEN`.\n" : ""}${layers.extras.metrics ? "- Set `METRICS_TOKEN`.\n" : ""}${layers.tenancy === "rls" ? `- \`DATABASE_URL\` must be a \`NOBYPASSRLS\` role, not the \`postgres\` superuser. Generated apps create \`${GENERATED_POSTGRES_APP_ROLE}\` via \`db/ensure-postgres-app-role.sql\` (and Compose init on first empty volume). \`MIGRATION_DATABASE_URL\` may stay the superuser for CREATE ROLE / GRANT / migrate. Production boot rejects username \`postgres\` or \`root\`, then inspects \`pg_roles\` for \`rolsuper\` / \`rolbypassrls\`.
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"check": "tsc --noEmit"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@getstrata/bootstrap": "^1.1.
|
|
16
|
-
"@getstrata/cli": "^1.1.
|
|
17
|
-
"@getstrata/core": "^1.1.
|
|
15
|
+
"@getstrata/bootstrap": "^1.1.3",
|
|
16
|
+
"@getstrata/cli": "^1.1.3",
|
|
17
|
+
"@getstrata/core": "^1.1.3",
|
|
18
18
|
"eta": "^4.6.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|