@ts-cloud/core 0.12.15 → 0.13.0
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/types.d.ts +86 -0
- package/package.json +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -1792,6 +1792,39 @@ export interface SftpConfig {
|
|
|
1792
1792
|
/** System account the box server runs as. Defaults to `ts-sftp`. */
|
|
1793
1793
|
serviceUser?: string;
|
|
1794
1794
|
}
|
|
1795
|
+
/**
|
|
1796
|
+
* The registrar half of {@link DnsConfig}.
|
|
1797
|
+
*/
|
|
1798
|
+
export interface DnsRegistrarConfig {
|
|
1799
|
+
/** Who the domain is registered with. Must be able to set nameservers. */
|
|
1800
|
+
provider: 'porkbun' | 'godaddy';
|
|
1801
|
+
/**
|
|
1802
|
+
* Hostnames to serve through the DNS provider's edge proxy, where it has one
|
|
1803
|
+
* (Cloudflare's "orange cloud").
|
|
1804
|
+
*
|
|
1805
|
+
* Opt-in per host, never "every address record". Proxying a mail host is the
|
|
1806
|
+
* classic way to break a domain quietly: Cloudflare does not proxy SMTP, and
|
|
1807
|
+
* the proxy replaces the origin address that the domain's own SPF record
|
|
1808
|
+
* authorises — so delivery degrades hours later with nothing visibly wrong.
|
|
1809
|
+
* Listing only the web hosts is what keeps that from being the default.
|
|
1810
|
+
*/
|
|
1811
|
+
proxied?: string[];
|
|
1812
|
+
/**
|
|
1813
|
+
* Report what the delegation would do and change nothing.
|
|
1814
|
+
*
|
|
1815
|
+
* Worth leaving on for a deploy or two before the real move: the report
|
|
1816
|
+
* names every record that would be copied, so a missing DKIM key is
|
|
1817
|
+
* something you read rather than something you discover.
|
|
1818
|
+
*/
|
|
1819
|
+
dryRun?: boolean;
|
|
1820
|
+
/**
|
|
1821
|
+
* Skip the delegation entirely.
|
|
1822
|
+
*
|
|
1823
|
+
* For a zone that is deliberately delegated somewhere ts-cloud does not
|
|
1824
|
+
* manage, where the check would otherwise try to correct it on every deploy.
|
|
1825
|
+
*/
|
|
1826
|
+
delegate?: boolean;
|
|
1827
|
+
}
|
|
1795
1828
|
export interface DnsConfig {
|
|
1796
1829
|
domain?: string;
|
|
1797
1830
|
hostedZoneId?: string;
|
|
@@ -1801,6 +1834,38 @@ export interface DnsConfig {
|
|
|
1801
1834
|
* instead of Route53
|
|
1802
1835
|
*/
|
|
1803
1836
|
provider?: 'route53' | 'cloudflare' | 'porkbun' | 'godaddy';
|
|
1837
|
+
/**
|
|
1838
|
+
* Where the domain is REGISTERED, when that is not where its DNS is served.
|
|
1839
|
+
*
|
|
1840
|
+
* A domain has two homes people conflate: the registrar it was bought from,
|
|
1841
|
+
* and the provider whose nameservers answer for it. Setting this says "the
|
|
1842
|
+
* zone belongs on `provider`, and `registrar` is what has to be pointed at
|
|
1843
|
+
* it" — and lets a deploy perform that move instead of an operator doing it
|
|
1844
|
+
* by hand at two dashboards and hoping the record sets match.
|
|
1845
|
+
*
|
|
1846
|
+
* On deploy, when the registrar's nameservers do not already point at
|
|
1847
|
+
* `provider`, ts-cloud creates the zone, copies the registrar's records
|
|
1848
|
+
* across, verifies record for record that they arrived, and only then
|
|
1849
|
+
* updates the nameservers. A verification failure leaves the delegation
|
|
1850
|
+
* alone: pointing a live domain at a half-populated zone is the one outcome
|
|
1851
|
+
* an operator cannot quickly undo, because the old zone keeps answering only
|
|
1852
|
+
* until caches expire.
|
|
1853
|
+
*
|
|
1854
|
+
* Once delegated it is a no-op. The zone's new host is authoritative from
|
|
1855
|
+
* that point, so the registrar's copy of the records is stale and
|
|
1856
|
+
* re-importing it would resurrect anything deleted since.
|
|
1857
|
+
*
|
|
1858
|
+
* @example
|
|
1859
|
+
* dns: {
|
|
1860
|
+
* provider: 'cloudflare', // serves the zone
|
|
1861
|
+
* domain: 'example.com',
|
|
1862
|
+
* registrar: {
|
|
1863
|
+
* provider: 'porkbun', // owns the delegation
|
|
1864
|
+
* proxied: ['example.com', 'www.example.com'],
|
|
1865
|
+
* },
|
|
1866
|
+
* }
|
|
1867
|
+
*/
|
|
1868
|
+
registrar?: DnsRegistrarConfig;
|
|
1804
1869
|
/**
|
|
1805
1870
|
* Records to publish on every deploy, alongside the address records ts-cloud
|
|
1806
1871
|
* derives from `sites`.
|
|
@@ -3548,9 +3613,30 @@ export interface ComputeProxyConfig {
|
|
|
3548
3613
|
engine: 'rpx';
|
|
3549
3614
|
/**
|
|
3550
3615
|
* npm version/range of `@stacksjs/rpx` to install on the box.
|
|
3616
|
+
*
|
|
3617
|
+
* The box OWNER's setting. There is one gateway per machine, and every
|
|
3618
|
+
* provisioning deploy reinstalls and recompiles it, so this version is
|
|
3619
|
+
* imposed on every project routed through that box - a tenant that pins an
|
|
3620
|
+
* old release rolls the whole machine back to it. A project with
|
|
3621
|
+
* `cloud.attachTo` set therefore does not provision the gateway at all and
|
|
3622
|
+
* this field is ignored for it.
|
|
3623
|
+
*
|
|
3551
3624
|
* @default 'latest'
|
|
3552
3625
|
*/
|
|
3553
3626
|
version?: string;
|
|
3627
|
+
/**
|
|
3628
|
+
* npm version/range of `@stacksjs/tlsx`, the ACME client the cert-renewal
|
|
3629
|
+
* timer runs. Owner-only, for the same reason as {@link version}.
|
|
3630
|
+
*
|
|
3631
|
+
* Separate from {@link version} because they are separate packages: the
|
|
3632
|
+
* renewal step used to install `@stacksjs/tlsx@<the rpx version>`, which
|
|
3633
|
+
* resolved to nothing whenever rpx was pinned, failed, and was swallowed by
|
|
3634
|
+
* its own `|| true` - leaving the box with no ACME client and renewal
|
|
3635
|
+
* failing silently until a cert expired.
|
|
3636
|
+
*
|
|
3637
|
+
* @default 'latest'
|
|
3638
|
+
*/
|
|
3639
|
+
tlsxVersion?: string;
|
|
3554
3640
|
/**
|
|
3555
3641
|
* Directory on the box holding real TLS certs (PEM `<domain>.crt`/`.key`),
|
|
3556
3642
|
* served per-SNI by rpx. @default '/etc/rpx/certs'
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-cloud/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.0",
|
|
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.
|
|
34
|
+
"@ts-cloud/aws-types": "0.13.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"typescript": "^7.0.2"
|