@ts-cloud/core 0.16.46 → 0.16.48

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.
Files changed (2) hide show
  1. package/dist/types.d.ts +31 -1
  2. package/package.json +2 -2
package/dist/types.d.ts CHANGED
@@ -52,6 +52,16 @@ export interface CloudProviderConfig {
52
52
  * @see https://github.com/stacksjs/ts-cloud/issues/169
53
53
  */
54
54
  attachTo?: string;
55
+ /**
56
+ * Preview deployments: a pull request deployed as its own tenant on this
57
+ * project's box at `<name>.<domain>` (Stacks' `buddy deploy:preview`).
58
+ */
59
+ previews?: {
60
+ /** The domain previews live under; its DNS must be at a provider the deploy has keys for. Env: `PREVIEW_DOMAIN`. */
61
+ domain?: string;
62
+ /** The site a preview deploys. Defaults to the first site that runs a server. */
63
+ site?: string;
64
+ };
55
65
  /**
56
66
  * Hosts this project used to serve on the shared gateway and deliberately
57
67
  * does not any more.
@@ -1427,7 +1437,27 @@ export interface SiteConfig {
1427
1437
  daemons?: DaemonConfig[];
1428
1438
  /** TLS configuration for this site's nginx vhost. */
1429
1439
  ssl?: SiteSslConfig;
1430
- /** Additional hostnames served by the same vhost (nginx `server_name`). */
1440
+ /**
1441
+ * More hostnames this site answers on, routed to it exactly like `domain`.
1442
+ *
1443
+ * ```ts
1444
+ * main: { domain: 'example.com', aliases: ['*.example.com'], start: '…', port: 3000 }
1445
+ * ```
1446
+ *
1447
+ * Each alias gets a gateway route, an address record and a certificate.
1448
+ * A literal alias (`app.example.com`) joins the site's normal http-01
1449
+ * certificates. A wildcard (`*.example.com`) is one Let's Encrypt
1450
+ * wildcard certificate, which only the dns-01 challenge can issue: the
1451
+ * renewal unit reads `PORKBUN_API_KEY` / `PORKBUN_SECRET_KEY` (and only
1452
+ * those) from the site's shared `.env` on the box, so the site must keep
1453
+ * that file (`sharedPaths: ['.env']`, the default for a server app) and
1454
+ * the domain must be at Porkbun. Wildcards are never issued on demand.
1455
+ *
1456
+ * Under nginx they are extra `server_name`s on the same vhost.
1457
+ *
1458
+ * What the app does with the extra hosts is the app's: in Stacks,
1459
+ * `config/server.ts#domains` routes `{username}.example.com` to a page.
1460
+ */
1431
1461
  aliases?: string[];
1432
1462
  /** `from` path/host → `to` URL redirects emitted into the nginx vhost. */
1433
1463
  redirects?: Record<string, string>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ts-cloud/core",
3
3
  "type": "module",
4
- "version": "0.16.46",
4
+ "version": "0.16.48",
5
5
  "description": "Core CloudFormation generation library for ts-cloud",
6
6
  "author": "Chris Breuer <chris@stacksjs.com>",
7
7
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "typecheck": "tsc --noEmit"
32
32
  },
33
33
  "dependencies": {
34
- "@ts-cloud/aws-types": "0.16.46"
34
+ "@ts-cloud/aws-types": "0.16.48"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "^7.0.2"