@codiac.io/codiac-cli 1.3.284 → 1.3.286

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 (34) hide show
  1. package/README.md +336 -208
  2. package/dist/apis/codiac-api/gen/contracts/types.gen.d.ts +18 -2
  3. package/dist/apis/codiac-api/gen/contracts/types.gen.js +1 -0
  4. package/dist/apis/codiac-api/gen/contracts/types.gen.js.map +1 -1
  5. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.d.ts +18 -2
  6. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js +1 -0
  7. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js.map +1 -1
  8. package/dist/apis/codiac-api-nats/gen/contracts.ng.d.ts +11 -1
  9. package/dist/apis/codiac-api-nats/gen/contracts.ng.js +1 -0
  10. package/dist/apis/codiac-api-nats/gen/contracts.ng.js.map +1 -1
  11. package/dist/apis/codiac-relay/gen/contracts/types.gen.d.ts +46 -5
  12. package/dist/apis/codiac-relay/gen/contracts/types.gen.js +1 -0
  13. package/dist/apis/codiac-relay/gen/contracts/types.gen.js.map +1 -1
  14. package/dist/apis/codiac-relay/gen/contracts-legacy.js +2 -1
  15. package/dist/apis/codiac-relay/gen/contracts-legacy.js.map +1 -1
  16. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.d.ts +42 -6
  17. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js +1 -0
  18. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js.map +1 -1
  19. package/dist/apis/codiac-relay-nats/gen/contracts.ng.d.ts +8 -1
  20. package/dist/apis/codiac-relay-nats/gen/contracts.ng.js +1 -0
  21. package/dist/apis/codiac-relay-nats/gen/contracts.ng.js.map +1 -1
  22. package/dist/commands/ai/agent/install.js +2 -1
  23. package/dist/commands/ai/agent/install.js.map +1 -1
  24. package/dist/commands/config/add.js +1 -1
  25. package/dist/commands/config/add.js.map +1 -1
  26. package/dist/commands/host/delete.d.ts +11 -0
  27. package/dist/commands/host/delete.js +20 -2
  28. package/dist/commands/host/delete.js.map +1 -1
  29. package/dist/commands/host/map.d.ts +8 -0
  30. package/dist/commands/host/map.js +86 -10
  31. package/dist/commands/host/map.js.map +1 -1
  32. package/oclif.manifest.json +31 -7
  33. package/package.json +2 -2
  34. package/skill/references/concepts.md +4 -1
@@ -7,11 +7,19 @@ const contracts_1 = require("../../apis/codiac-api/contracts");
7
7
  const command_base_exec_tenant_1 = require("../../command-base-exec-tenant");
8
8
  const delete_1 = require("./delete");
9
9
  const type_safety_utils_1 = require("../../uilogic/type-safety-utils");
10
+ /** Explains the strip-path choice; shared by the flag description and the interactive prompt so the two never drift. */
11
+ const STRIP_PATH_EXPLAINER = "Removes the service's path segment before the request reaches the service, so an app that serves at `/` works behind `<host>/<service>/`. "
12
+ + "eg: with `dev.my-company.com` + domain_slash_service + --strip-path, `https://dev.my-company.com/orders/swagger` reaches the `orders` service as `/swagger`. "
13
+ + "Leave it off for apps that already serve under their own prefix (eg ASP.NET UsePathBase, Express app.use('/orders', ...)).";
10
14
  class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
11
15
  captureArgs() {
12
16
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
17
  const { flags } = yield this.parse(HostMap);
14
- return [{}, false];
18
+ const partial = {};
19
+ // Left undefined when neither --strip-path nor --no-strip-path was typed, so interactive mode knows to ask.
20
+ if (flags["strip-path"] !== undefined)
21
+ partial.stripPath = flags["strip-path"];
22
+ return [partial, false];
15
23
  });
16
24
  }
17
25
  buildCandidate_silently(_partial, rootMap) {
@@ -27,8 +35,9 @@ class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
27
35
  if (!naming)
28
36
  throw new Error(`Invalid host naming strategy [${flags.naming}].`);
29
37
  const isPrivate = type_safety_utils_1.TypeSafetyUtils.toBoolean(flags.private);
38
+ const stripPath = this.resolveStripPath(_partial.stripPath, naming);
30
39
  const thisMachine = this.isLocalMachine(scope, rootMap);
31
- return { domain: args.domain.trim(), scope, naming, isPrivate, thisMachine };
40
+ return { domain: args.domain.trim(), scope, naming, isPrivate, stripPath, thisMachine };
32
41
  });
33
42
  }
34
43
  buildCandidate_interactively(_partial, _takeDefaults, rootMap) {
@@ -62,7 +71,7 @@ class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
62
71
  if (!naming) {
63
72
  const strategies = Object.values(host_name_strategy_enum_1.HostNameStrategyEnum).sort().map(x => ({
64
73
  value: x,
65
- name: x.replace(/_dot_/g, ".").replace(/_slash_/g, "/")
74
+ name: delete_1.HostNameUiLogic.strategyLabel(x)
66
75
  }));
67
76
  const selected = yield this._ui.promptSelect("naming", "Host Naming Strategy", strategies);
68
77
  if (!selected) {
@@ -82,15 +91,36 @@ class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
82
91
  const selected = yield this._ui.promptSelect("isPrivate", "Usage:", choices, false, true);
83
92
  isPrivate = type_safety_utils_1.TypeSafetyUtils.toBoolean(selected);
84
93
  }
94
+ // Strip path (path-based strategies only)
95
+ let stripPath;
96
+ if (delete_1.HostNameUiLogic.isPathBasedStrategy(naming)) {
97
+ if (_partial.stripPath !== undefined) {
98
+ stripPath = _partial.stripPath;
99
+ this._ui.userMessage("Strip path: ".concat(this._styler.hilite(stripPath ? "on" : "off")));
100
+ }
101
+ else {
102
+ this._ui.userMessage(this._styler.dim("Strip path: ".concat(STRIP_PATH_EXPLAINER)));
103
+ stripPath = yield this._ui.promptConfirm("stripPath", "Strip the /<service> path segment before requests reach the service? ", false);
104
+ }
105
+ }
106
+ else if (_partial.stripPath === true) {
107
+ // Rule 1: never silently drop what the user asked for; make them approve it.
108
+ this._ui.userMessage(this._styler.colorWarning(`--strip-path only applies to path-based strategies; [${naming}] gives each service its own host, so there is no path to strip.`));
109
+ const proceed = yield this._ui.promptConfirm("stripPathIgnored", "Continue without strip-path? ", true);
110
+ if (!proceed) {
111
+ this._ui.userMessage("Cancelled. No work was done.");
112
+ return undefined;
113
+ }
114
+ }
85
115
  const thisMachine = this.isLocalMachine(scope, rootMap);
86
- const preview = yield this.buildPreview(scope, domain, naming, isPrivate);
116
+ const preview = yield this.buildPreview(scope, domain, naming, isPrivate, stripPath);
87
117
  this._ui.userMessage("You are about to submit the following domain host mapping strategy: ".concat("\n", preview));
88
118
  const confirm = yield this._ui.promptConfirm("confirmGo", "Continue? ", false);
89
119
  if (!confirm) {
90
120
  this._ui.userMessage("Cancelled. No work was done.");
91
121
  return undefined;
92
122
  }
93
- return { domain, scope, naming, isPrivate, thisMachine };
123
+ return { domain, scope, naming, isPrivate, stripPath, thisMachine };
94
124
  });
95
125
  }
96
126
  buildCommandString(candidate, cmd) {
@@ -106,6 +136,9 @@ class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
106
136
  cmd.push("-n", candidate.naming);
107
137
  if (candidate.isPrivate)
108
138
  cmd.push("--private");
139
+ // Silent mode treats an absent flag as off, so only "on" needs rendering to reproduce the candidate.
140
+ if (candidate.stripPath)
141
+ cmd.push("--strip-path");
109
142
  cmd.push("--silent");
110
143
  return cmd;
111
144
  }
@@ -125,6 +158,7 @@ class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
125
158
  // than one enterprise exists.
126
159
  enterprise: (_a = candidate.scope.enterprise) !== null && _a !== void 0 ? _a : (candidate.scope.level === contracts_1.ScopeLevel.enterprise ? candidate.scope.target : undefined),
127
160
  isPrivate: candidate.isPrivate,
161
+ stripPath: candidate.stripPath,
128
162
  thisMachine: candidate.thisMachine
129
163
  });
130
164
  this._ui.stopSpinner(result.success ? "Completed" : "Failed");
@@ -183,16 +217,33 @@ class HostMap extends command_base_exec_tenant_1.CommandBaseExecTenant {
183
217
  }
184
218
  });
185
219
  }
186
- buildPreview(scope, domain, naming, isPrivate) {
220
+ /** Silent-mode resolution of the strip-path choice against the chosen strategy.
221
+ * Path-based strategies always get an explicit boolean (absent flag = off) so that re-running `host map`
222
+ * on an existing mapping without the flag turns strip-path back off rather than leaving a stale value.
223
+ * Host-based strategies leave it undefined, and throw if it was explicitly requested. */
224
+ resolveStripPath(given, naming) {
225
+ if (delete_1.HostNameUiLogic.isPathBasedStrategy(naming))
226
+ return given === true;
227
+ if (given === true) {
228
+ throw new Error(`--strip-path only applies to path-based strategies (those ending in _slash_service); [${naming}] gives each service its own host, so there is no path to strip. Remove --strip-path or choose a path-based strategy.`);
229
+ }
230
+ return undefined;
231
+ }
232
+ buildPreview(scope, domain, naming, isPrivate, stripPath) {
187
233
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
188
234
  const candidate = {
189
- enterprise: scope.enterprise, domainName: domain, strategy: naming, scope: scope.level, target: scope.target, isPrivate
235
+ enterprise: scope.enterprise, domainName: domain, strategy: naming, scope: scope.level, target: scope.target, isPrivate, stripPath
190
236
  };
191
237
  return delete_1.HostNameUiLogic.displayNameFor(candidate, this._styler);
192
238
  });
193
239
  }
194
240
  validateGivenNaming(naming, nonInteractive = false) {
195
- const selected = (naming && naming in host_name_strategy_enum_1.HostNameStrategyEnum) ? naming : undefined;
241
+ // Accept the stored strategy value (eg "domain_slash_service") and, for back-compat, the enum key (eg "domainSlashService").
242
+ const values = Object.values(host_name_strategy_enum_1.HostNameStrategyEnum);
243
+ const selected = !naming ? undefined
244
+ : values.includes(naming) ? naming
245
+ : (naming in host_name_strategy_enum_1.HostNameStrategyEnum) ? host_name_strategy_enum_1.HostNameStrategyEnum[naming]
246
+ : undefined;
196
247
  if (!selected && nonInteractive)
197
248
  throw new Error(`Invalid host naming strategy [${naming}].`);
198
249
  return selected;
@@ -378,11 +429,31 @@ HostMap.description = 'Declares a strategy for mapping assets to ingress routes
378
429
  HostMap.aliases = ['domain:map'];
379
430
  HostMap.flags = {
380
431
  help: core_1.Flags.help({ char: 'h' }),
381
- naming: core_1.Flags.string({ char: 'n', required: false, description: "The host naming strategy to apply." }),
382
- enterprise: core_1.Flags.string({ char: 'e', exclusive: ["environment"], description: 'The name of the enterprise on which to apply this naming strategy. Leave blank if there is only one.' }),
432
+ naming: core_1.Flags.string({
433
+ char: 'n', required: false,
434
+ description: "How each service's hostname (and path) is built from the domain; prompted when omitted. "
435
+ + "Host-form strategies give every service its own host, served at `/`: "
436
+ + "svc_dash_env_dot_domain = <service>-<env>.<domain> (one DNS label, so one wildcard DNS record and *.<domain> cert cover every service in every environment), "
437
+ + "svc_dot_cab_dot_domain = <service>.<cabinet>.<domain>, "
438
+ + "service_dot_domain = <service>.<domain>. "
439
+ + "Path-form strategies share one host and route by /<service> (see --strip-path): "
440
+ + "domain_slash_service = <domain>/<service>, "
441
+ + "cab_dot_domain_slash_service = <cabinet>.<domain>/<service>, "
442
+ + "cab_dot_cluster_dot_domain_slash_service = <cabinet>.<cluster>.<domain>/<service>, "
443
+ + "cab_dot_cluster_dot_enterprise_dot_domain_slash_service = <cabinet>.<cluster>.<enterprise>.<domain>/<service>, "
444
+ + "globally_shared_domain_slash_service = for a domain shared across tenants and clusters. "
445
+ + "shared_ingress_ip = <ingress-ip>/<tenant>/<enterprise>/<cabinet>/<service>, no domain needed."
446
+ }),
447
+ enterprise: core_1.Flags.string({ char: 'e', description: 'The name of the enterprise on which to apply this naming strategy. Leave blank if there is only one.' }),
383
448
  environment: core_1.Flags.string({ char: 'v', exclusive: ["cabinet"], description: 'The name of the environment on which to apply this naming strategy. Must be qualified by also setting enterprise if there are more than one.' }),
384
449
  cabinet: core_1.Flags.string({ char: 'c', exclusive: ["environment"], description: 'The name of the cabinet on which to apply this naming strategy. Must be qualified by also setting enterprise if cabinet names are not unique.' }),
385
450
  private: core_1.Flags.boolean({ description: "Declares that this domain mapping is for internal use and not available from the internet." }),
451
+ "strip-path": core_1.Flags.boolean({
452
+ allowNo: true,
453
+ description: "(Path-based strategies only: domain_slash_service, cab_dot_domain_slash_service, cab_dot_cluster_dot_domain_slash_service, cab_dot_cluster_dot_enterprise_dot_domain_slash_service, globally_shared_domain_slash_service.) "
454
+ + STRIP_PATH_EXPLAINER
455
+ + " Has no meaning for host-based strategies (they give each service its own host, so there is no prefix to strip): --silent rejects the combination and interactive mode asks before dropping it. Off unless given; to change it on an existing mapping, re-run this command with the same domain, scope and strategy."
456
+ }),
386
457
  silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Executes without any user interaction; fails on missing or invalid arguments.' }),
387
458
  echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Renders the equivalent non-interactive command for future use before executing.' }),
388
459
  "to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }),
@@ -394,6 +465,11 @@ HostMap.examples = [
394
465
  { description: "Map a domain interactively.", command: "<%= config.bin %> <%= command.id %> my-company.com" },
395
466
  { description: "Map an enterprise-level domain.", command: "<%= config.bin %> <%= command.id %> my-company.com -e myEnterprise -n subdomain_dot_cabinet --silent" },
396
467
  { description: "Renders the equivalent silent command without executing.", command: "<%= config.bin %> <%= command.id %> my-company.com -e myEnterprise --to-script" },
468
+ { description: "Path-based routing for an app that serves at `/`: `https://dev.my-company.com/orders/swagger` reaches the `orders` service as `/swagger`.", command: "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --strip-path --silent" },
469
+ { description: "Path-based routing for an app that already serves under its own prefix (eg ASP.NET UsePathBase or Express app.use('/orders', ...)): leave --strip-path off so the service still receives `/orders/swagger`.", command: "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --silent" },
470
+ { description: "Turn strip-path on for an EXISTING mapping: re-run with the same domain, scope and strategy plus --strip-path. The mapping is updated in place (no delete needed) and ingress is re-applied. Re-run without the flag (or with --no-strip-path) to turn it back off.", command: "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --strip-path --silent" },
471
+ { description: "Renders the equivalent silent command, including any strip-path choice made at the prompt, and then executes.", command: "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --echo" },
472
+ { description: "One host per service per environment, served at `/` (Swagger, redirects and self-links work unchanged): the `orders` service in `staging` becomes `orders-staging.internal.my-company.com`. A single wildcard DNS record and wildcard cert (*.internal.my-company.com) cover all services in all environments, so a new environment needs only its own host map.", command: "<%= config.bin %> <%= command.id %> internal.my-company.com -e main -v staging -n svc_dash_env_dot_domain --silent" },
397
473
  { description: "Consume a mapping from a helm chart's own ingress spec: after mapping the domain here, reference it from any scoped setting via the ${hostmap(strategy, domain)} dynamic variable. See `cod config set --help` for setting-side examples.", command: "<%= config.bin %> <%= command.id %> mywebsite.com -e main -v primero-dev -n svc_dot_cab_dot_domain --silent" },
398
474
  ];
399
475
  //# sourceMappingURL=map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/commands/host/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/commands/host/map.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.284",
2
+ "version": "1.3.286",
3
3
  "commands": {
4
4
  "branch": {
5
5
  "id": "branch",
@@ -4576,7 +4576,7 @@
4576
4576
  "command": "cod config set -a my-asset -c dev -t helm --setting ingress.host --value '@{$hostmap(\"svc_dot_cab_dot_domain\", \"mywebsite.com\")}'"
4577
4577
  },
4578
4578
  {
4579
- "description": "Sibling @{$hostmap_path(...)} returns the path component for path-form strategies (cab_dot_domain_slash_service, domain_slash_service). Returns empty string for host-only strategies.",
4579
+ "description": "Sibling @{$hostmap_path(...)} returns the path component for path-form strategies (cab_dot_domain_slash_service, domain_slash_service). Returns empty string for host-only strategies (eg svc_dot_cab_dot_domain, svc_dash_env_dot_domain).",
4580
4580
  "command": "cod config set -a my-asset -c dev -t helm --setting ingress.path --value '@{$hostmap_path(\"cab_dot_domain_slash_service\", \"my-company.com\")}'"
4581
4581
  },
4582
4582
  {
@@ -6976,6 +6976,7 @@
6976
6976
  "globally_shared_domain_slash_service",
6977
6977
  "service_dot_domain",
6978
6978
  "shared_ingress_ip",
6979
+ "svc_dash_env_dot_domain",
6979
6980
  "svc_dot_cab_dot_domain"
6980
6981
  ],
6981
6982
  "exclusive": [
@@ -7178,6 +7179,26 @@
7178
7179
  "description": "Renders the equivalent silent command without executing.",
7179
7180
  "command": "<%= config.bin %> <%= command.id %> my-company.com -e myEnterprise --to-script"
7180
7181
  },
7182
+ {
7183
+ "description": "Path-based routing for an app that serves at `/`: `https://dev.my-company.com/orders/swagger` reaches the `orders` service as `/swagger`.",
7184
+ "command": "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --strip-path --silent"
7185
+ },
7186
+ {
7187
+ "description": "Path-based routing for an app that already serves under its own prefix (eg ASP.NET UsePathBase or Express app.use('/orders', ...)): leave --strip-path off so the service still receives `/orders/swagger`.",
7188
+ "command": "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --silent"
7189
+ },
7190
+ {
7191
+ "description": "Turn strip-path on for an EXISTING mapping: re-run with the same domain, scope and strategy plus --strip-path. The mapping is updated in place (no delete needed) and ingress is re-applied. Re-run without the flag (or with --no-strip-path) to turn it back off.",
7192
+ "command": "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --strip-path --silent"
7193
+ },
7194
+ {
7195
+ "description": "Renders the equivalent silent command, including any strip-path choice made at the prompt, and then executes.",
7196
+ "command": "<%= config.bin %> <%= command.id %> dev.my-company.com -e myEnterprise -v dev -n domain_slash_service --echo"
7197
+ },
7198
+ {
7199
+ "description": "One host per service per environment, served at `/` (Swagger, redirects and self-links work unchanged): the `orders` service in `staging` becomes `orders-staging.internal.my-company.com`. A single wildcard DNS record and wildcard cert (*.internal.my-company.com) cover all services in all environments, so a new environment needs only its own host map.",
7200
+ "command": "<%= config.bin %> <%= command.id %> internal.my-company.com -e main -v staging -n svc_dash_env_dot_domain --silent"
7201
+ },
7181
7202
  {
7182
7203
  "description": "Consume a mapping from a helm chart's own ingress spec: after mapping the domain here, reference it from any scoped setting via the ${hostmap(strategy, domain)} dynamic variable. See `cod config set --help` for setting-side examples.",
7183
7204
  "command": "<%= config.bin %> <%= command.id %> mywebsite.com -e main -v primero-dev -n svc_dot_cab_dot_domain --silent"
@@ -7195,7 +7216,7 @@
7195
7216
  "name": "naming",
7196
7217
  "type": "option",
7197
7218
  "char": "n",
7198
- "description": "The host naming strategy to apply.",
7219
+ "description": "How each service's hostname (and path) is built from the domain; prompted when omitted. Host-form strategies give every service its own host, served at `/`: svc_dash_env_dot_domain = <service>-<env>.<domain> (one DNS label, so one wildcard DNS record and *.<domain> cert cover every service in every environment), svc_dot_cab_dot_domain = <service>.<cabinet>.<domain>, service_dot_domain = <service>.<domain>. Path-form strategies share one host and route by /<service> (see --strip-path): domain_slash_service = <domain>/<service>, cab_dot_domain_slash_service = <cabinet>.<domain>/<service>, cab_dot_cluster_dot_domain_slash_service = <cabinet>.<cluster>.<domain>/<service>, cab_dot_cluster_dot_enterprise_dot_domain_slash_service = <cabinet>.<cluster>.<enterprise>.<domain>/<service>, globally_shared_domain_slash_service = for a domain shared across tenants and clusters. shared_ingress_ip = <ingress-ip>/<tenant>/<enterprise>/<cabinet>/<service>, no domain needed.",
7199
7220
  "required": false,
7200
7221
  "multiple": false
7201
7222
  },
@@ -7204,10 +7225,7 @@
7204
7225
  "type": "option",
7205
7226
  "char": "e",
7206
7227
  "description": "The name of the enterprise on which to apply this naming strategy. Leave blank if there is only one.",
7207
- "multiple": false,
7208
- "exclusive": [
7209
- "environment"
7210
- ]
7228
+ "multiple": false
7211
7229
  },
7212
7230
  "environment": {
7213
7231
  "name": "environment",
@@ -7235,6 +7253,12 @@
7235
7253
  "description": "Declares that this domain mapping is for internal use and not available from the internet.",
7236
7254
  "allowNo": false
7237
7255
  },
7256
+ "strip-path": {
7257
+ "name": "strip-path",
7258
+ "type": "boolean",
7259
+ "description": "(Path-based strategies only: domain_slash_service, cab_dot_domain_slash_service, cab_dot_cluster_dot_domain_slash_service, cab_dot_cluster_dot_enterprise_dot_domain_slash_service, globally_shared_domain_slash_service.) Removes the service's path segment before the request reaches the service, so an app that serves at `/` works behind `<host>/<service>/`. eg: with `dev.my-company.com` + domain_slash_service + --strip-path, `https://dev.my-company.com/orders/swagger` reaches the `orders` service as `/swagger`. Leave it off for apps that already serve under their own prefix (eg ASP.NET UsePathBase, Express app.use('/orders', ...)). Has no meaning for host-based strategies (they give each service its own host, so there is no prefix to strip): --silent rejects the combination and interactive mode asks before dropping it. Off unless given; to change it on an existing mapping, re-run this command with the same domain, scope and strategy.",
7260
+ "allowNo": true
7261
+ },
7238
7262
  "silent": {
7239
7263
  "name": "silent",
7240
7264
  "type": "boolean",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codiac.io/codiac-cli",
3
3
  "description": "Local command line interface for managing enterprise assets and environments.",
4
- "version": "1.3.284",
4
+ "version": "1.3.286",
5
5
  "author": "Codiac",
6
6
  "bin": {
7
7
  "codiac": "./bin/run",
@@ -33,7 +33,7 @@
33
33
  "@codiac.io/api-client-base": "^1.1.19",
34
34
  "@codiac.io/cli-tools": "^1.1.13",
35
35
  "@codiac.io/codiac-common": "^1.5.6",
36
- "@codiac.io/codiac-domain": "^1.12.7",
36
+ "@codiac.io/codiac-domain": "^1.12.10",
37
37
  "@codiac.io/codiac-messaging": "^1.4.28",
38
38
  "@codiac.io/codiac-ops-common": "^1.5.5",
39
39
  "@codiac.io/codiac-relay-contracts": "^1.3.2",
@@ -261,7 +261,10 @@ auth — prefer it over raw cloud CLIs for cluster access.
261
261
 
262
262
  - A workload with an ingress needs a **host**. Codiac resolves hosts from a **host-naming strategy**
263
263
  attached to a scope (`ScopedHostNameConfig`) — e.g. `svc_dot_cab_dot_domain`
264
- (`<service>.<cabinet>.<domain>`) or `shared_ingress_ip`.
264
+ (`<service>.<cabinet>.<domain>`), `svc_dash_env_dot_domain` (`<service>-<env>.<domain>`: one DNS
265
+ label per service per environment, served at `/`, so one wildcard record + `*.<domain>` cert covers
266
+ every environment) or `shared_ingress_ip`. Strategies ending in `_slash_service` share one host and
267
+ route by `/<service>` (`--strip-path` applies only to those).
265
268
  - You can set the ingress host directly as a `[helm]` scoped setting (`ingress.host`), ideally as a
266
269
  shareable enterprise-scope **template** (`@{asset.name}.@{cabinet.name}.….<domain>`) so it
267
270
  resolves per cabinet.