log10x-mcp 1.30.0 → 1.30.1

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 (107) hide show
  1. package/build/lib/advisor/compaction-support.d.ts +51 -0
  2. package/build/lib/advisor/compaction-support.js +70 -0
  3. package/build/lib/advisor/compaction-support.js.map +1 -0
  4. package/build/lib/advisor/reporter.d.ts +10 -1
  5. package/build/lib/advisor/reporter.js +59 -3
  6. package/build/lib/advisor/reporter.js.map +1 -1
  7. package/build/product-kb/docs/api/expand.md +1 -1
  8. package/build/product-kb/docs/api/github.md +2 -2
  9. package/build/product-kb/docs/api/js.md +1 -1
  10. package/build/product-kb/docs/api/manage.md +1 -1
  11. package/build/product-kb/docs/apps/compiler/index.md +1 -1
  12. package/build/product-kb/docs/apps/compiler/run.md +0 -1
  13. package/build/product-kb/docs/apps/mcp/faq.md +1 -1
  14. package/build/product-kb/docs/apps/mcp/install.md +1 -1
  15. package/build/product-kb/docs/apps/mcp/run.md +2 -2
  16. package/build/product-kb/docs/apps/mcp/tools/account/signin.md +1 -1
  17. package/build/product-kb/docs/apps/mcp/tools/account/signout.md +2 -2
  18. package/build/product-kb/docs/apps/mcp/tools/detect/find-skew.md +1 -1
  19. package/build/product-kb/docs/apps/mcp/tools/detect/index.md +1 -1
  20. package/build/product-kb/docs/apps/mcp/tools/detect/measure-compaction.md +1 -1
  21. package/build/product-kb/docs/apps/mcp/tools/orient/preview-filter.md +2 -0
  22. package/build/product-kb/docs/apps/mcp/tools/poc/index.md +1 -1
  23. package/build/product-kb/docs/apps/mcp/tools/poc/poc-from-local.md +1 -1
  24. package/build/product-kb/docs/apps/receiver/deploy.md +7 -7
  25. package/build/product-kb/docs/apps/receiver/faq.md +3 -3
  26. package/build/product-kb/docs/apps/receiver/run.md +6 -7
  27. package/build/product-kb/docs/apps/reporter/deploy.md +2 -2
  28. package/build/product-kb/docs/apps/reporter/faq.md +8 -6
  29. package/build/product-kb/docs/apps/reporter/run.md +6 -7
  30. package/build/product-kb/docs/apps/retriever/faq.md +1 -1
  31. package/build/product-kb/docs/apps/retriever/run.md +1 -2
  32. package/build/product-kb/docs/compile/bootstrap/index.md +3 -5
  33. package/build/product-kb/docs/compile/deploy.md +2 -2
  34. package/build/product-kb/docs/compile/faq.md +6 -6
  35. package/build/product-kb/docs/compile/test.md +1 -2
  36. package/build/product-kb/docs/doc/bootstrap/index.md +6 -10
  37. package/build/product-kb/docs/engine/flavors.md +2 -1
  38. package/build/product-kb/docs/engine/index.md +1 -1
  39. package/build/product-kb/docs/engine/launcher/dev.md +1 -1
  40. package/build/product-kb/docs/engine/launcher/extension.md +1 -1
  41. package/build/product-kb/docs/engine/launcher/index.md +1 -1
  42. package/build/product-kb/docs/engine/launcher/lambda.md +1 -1
  43. package/build/product-kb/docs/faq/apps/index.md +3 -2
  44. package/build/product-kb/docs/faq/apps/mcp.md +2 -1
  45. package/build/product-kb/docs/faq/apps/receiver.md +3 -3
  46. package/build/product-kb/docs/faq/apps/reporter.md +8 -6
  47. package/build/product-kb/docs/faq/apps/retriever.md +1 -1
  48. package/build/product-kb/docs/faq/general.md +5 -4
  49. package/build/product-kb/docs/faq/index.md +2 -0
  50. package/build/product-kb/docs/faq/pricing/index.md +2 -1
  51. package/build/product-kb/docs/faq/pricing/node-counting.md +1 -1
  52. package/build/product-kb/docs/faq/pricing/overview.md +2 -3
  53. package/build/product-kb/docs/faq/pricing/tiers-billing.md +17 -15
  54. package/build/product-kb/docs/faq/security/auth-access.md +10 -11
  55. package/build/product-kb/docs/faq/security/compliance.md +4 -4
  56. package/build/product-kb/docs/faq/security/data-protection.md +7 -3
  57. package/build/product-kb/docs/faq/security/deployment.md +8 -4
  58. package/build/product-kb/docs/faq/security/index.md +6 -2
  59. package/build/product-kb/docs/faq/stacks/aws-cloudwatch.md +7 -7
  60. package/build/product-kb/docs/faq/stacks/azure-monitor.md +7 -7
  61. package/build/product-kb/docs/faq/stacks/datadog/compatibility.md +2 -2
  62. package/build/product-kb/docs/faq/stacks/datadog/integration.md +2 -2
  63. package/build/product-kb/docs/faq/stacks/datadog/optimization.md +2 -9
  64. package/build/product-kb/docs/faq/stacks/datadog/troubleshooting.md +2 -2
  65. package/build/product-kb/docs/faq/stacks/elasticsearch/compatibility.md +3 -3
  66. package/build/product-kb/docs/faq/stacks/elasticsearch/operations.md +1 -1
  67. package/build/product-kb/docs/faq/stacks/elasticsearch/optimization.md +2 -2
  68. package/build/product-kb/docs/faq/stacks/index.md +1 -0
  69. package/build/product-kb/docs/faq/stacks/splunk/compatibility.md +3 -3
  70. package/build/product-kb/docs/faq/stacks/splunk/index.md +1 -0
  71. package/build/product-kb/docs/faq/stacks/splunk/optimization.md +3 -3
  72. package/build/product-kb/docs/global/index.md +1 -1
  73. package/build/product-kb/docs/home/index.md +1 -0
  74. package/build/product-kb/docs/install/docker.md +1 -1
  75. package/build/product-kb/docs/install/index.md +3 -2
  76. package/build/product-kb/docs/install/macos.md +1 -0
  77. package/build/product-kb/docs/install/paths.md +1 -1
  78. package/build/product-kb/docs/install/win.md +1 -0
  79. package/build/product-kb/docs/manage/api-keys.md +16 -6
  80. package/build/product-kb/docs/manage/authentication.md +4 -4
  81. package/build/product-kb/docs/manage/environments.md +1 -1
  82. package/build/product-kb/docs/manage/index.md +8 -6
  83. package/build/product-kb/docs/manage/license.md +43 -20
  84. package/build/product-kb/docs/manage/logging.md +33 -45
  85. package/build/product-kb/docs/manage/status.md +59 -242
  86. package/build/product-kb/docs/run/bootstrap/index.md +9 -15
  87. package/build/product-kb/docs/run/index.md +1 -1
  88. package/build/product-kb/docs/run/initialize/message/index.md +1 -1
  89. package/build/product-kb/docs/run/input/analyzer/cloudwatchLogs/index.md +1 -1
  90. package/build/product-kb/docs/run/input/analyzer/datadogLogs/index.md +1 -1
  91. package/build/product-kb/docs/run/input/analyzer/elasticsearch/index.md +1 -1
  92. package/build/product-kb/docs/run/input/analyzer/index.md +1 -1
  93. package/build/product-kb/docs/run/input/analyzer/splunk/index.md +1 -1
  94. package/build/product-kb/docs/run/output/event/dev/index.md +2 -2
  95. package/build/product-kb/docs/run/output/metric/log10x/index.md +5 -289
  96. package/build/product-kb/docs/run/transform/index.md +1 -1
  97. package/build/product-kb/docs/security/answers.md +145 -0
  98. package/build/product-kb/docs/security/index.md +67 -0
  99. package/build/product-kb/docs/security/sbom.md +77 -0
  100. package/build/product-kb/docs/security/subprocessors.md +91 -0
  101. package/build/product-kb/docs/security/telemetry.md +194 -0
  102. package/build/product-kb/docs/summary.md +6 -4
  103. package/package.json +1 -1
  104. package/build/product-kb/docs/apps/dev/faq.md +0 -83
  105. package/build/product-kb/docs/apps/dev/index.md +0 -114
  106. package/build/product-kb/docs/apps/dev/run.md +0 -8781
  107. package/build/product-kb/docs/faq/apps/dev.md +0 -84
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Can the install's destination read compacted events back?
3
+ *
4
+ * Compaction is a reversible in-place shrink: the Receiver rewrites each
5
+ * event into an encoded form, and something on the DESTINATION side expands
6
+ * it again at search or query time. That expander is a separate artifact
7
+ * installed on the SIEM, not part of the helm release this advisor emits:
8
+ * the 10x Splunk app, the l1es Elasticsearch/OpenSearch plugin, the 10x
9
+ * ClickHouse view. Without it, compaction is lossless on disk and lossy to
10
+ * the person running the search — which is the one failure the product's
11
+ * headline claim cannot afford.
12
+ *
13
+ * So `optimize=true` carries a prerequisite the plan MUST state, and on
14
+ * destinations that have no expander at all it is not a lever, it is damage.
15
+ * The facts live in `lib/cost.ts` (`compact_mode`, `compact_requires`), which
16
+ * the pricing path already renders per-lever; this module reads the same
17
+ * models so the install path cannot drift from what the plan quoted.
18
+ */
19
+ import type { OutputDestination } from './reporter-forwarders.js';
20
+ export type CompactionSupport =
21
+ /** Destination expands compacted events, once its expander is installed. */
22
+ {
23
+ kind: 'expander-required';
24
+ requires: string;
25
+ docsUrl?: string;
26
+ }
27
+ /** Destination cannot expand them at all — compaction here is unreadable. */
28
+ | {
29
+ kind: 'unsupported';
30
+ displayName: string;
31
+ }
32
+ /** No real destination configured yet (the `mock` bench sink). */
33
+ | {
34
+ kind: 'no-destination';
35
+ };
36
+ /**
37
+ * What compaction means at this destination. `mock` is the advisor's default
38
+ * when no destination is passed, so it gets its own answer rather than
39
+ * falling into either real branch.
40
+ */
41
+ export declare function compactionSupport(destination: OutputDestination): CompactionSupport;
42
+ /**
43
+ * The dependency stated without naming a destination.
44
+ *
45
+ * The install wizard does not ask where events go: the Receiver is a sidecar
46
+ * that rides the customer's existing forwarder, and that forwarder still owns
47
+ * the destination. So the plan it emits genuinely does not know which expander
48
+ * applies, and saying "install the Splunk app" would be a guess. Name all
49
+ * three and let the customer pick the row that matches their stack.
50
+ */
51
+ export declare const EXPANDER_PREREQUISITE_GENERAL: string;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Can the install's destination read compacted events back?
3
+ *
4
+ * Compaction is a reversible in-place shrink: the Receiver rewrites each
5
+ * event into an encoded form, and something on the DESTINATION side expands
6
+ * it again at search or query time. That expander is a separate artifact
7
+ * installed on the SIEM, not part of the helm release this advisor emits:
8
+ * the 10x Splunk app, the l1es Elasticsearch/OpenSearch plugin, the 10x
9
+ * ClickHouse view. Without it, compaction is lossless on disk and lossy to
10
+ * the person running the search — which is the one failure the product's
11
+ * headline claim cannot afford.
12
+ *
13
+ * So `optimize=true` carries a prerequisite the plan MUST state, and on
14
+ * destinations that have no expander at all it is not a lever, it is damage.
15
+ * The facts live in `lib/cost.ts` (`compact_mode`, `compact_requires`), which
16
+ * the pricing path already renders per-lever; this module reads the same
17
+ * models so the install path cannot drift from what the plan quoted.
18
+ */
19
+ import { getDestinationCostModel } from '../cost.js';
20
+ import { SIEM_DISPLAY_NAMES } from '../siem/pricing.js';
21
+ /**
22
+ * Where the customer gets the expander. The MCP cannot resolve the artifact
23
+ * itself: the plugin is built against an exact platform version
24
+ * (`l1es-plugin-0.3.0.es.8.17.0.zip` and its OpenSearch twin), and we do not
25
+ * know the version of a SIEM we never connected to. Point at the page that
26
+ * carries the matrix rather than emit a download URL that may not match.
27
+ */
28
+ const EXPANDER_DOCS = {
29
+ splunk: 'https://doc.log10x.com/apps/receiver/compact/splunk/',
30
+ elasticsearch: 'https://doc.log10x.com/apps/receiver/compact/elasticsearch/',
31
+ };
32
+ /**
33
+ * What compaction means at this destination. `mock` is the advisor's default
34
+ * when no destination is passed, so it gets its own answer rather than
35
+ * falling into either real branch.
36
+ */
37
+ export function compactionSupport(destination) {
38
+ if (destination === 'mock')
39
+ return { kind: 'no-destination' };
40
+ const model = getDestinationCostModel(destination);
41
+ if (model.compact_mode === 'no-op') {
42
+ return { kind: 'unsupported', displayName: SIEM_DISPLAY_NAMES[destination] };
43
+ }
44
+ // Every non-no-op model in cost.ts carries compact_requires. Fall back to a
45
+ // truthful generic rather than silently dropping the prerequisite if a new
46
+ // destination lands there without one.
47
+ return {
48
+ kind: 'expander-required',
49
+ requires: model.compact_requires ?? 'the matching 10x expander installed on the destination',
50
+ docsUrl: EXPANDER_DOCS[destination],
51
+ };
52
+ }
53
+ /**
54
+ * The dependency stated without naming a destination.
55
+ *
56
+ * The install wizard does not ask where events go: the Receiver is a sidecar
57
+ * that rides the customer's existing forwarder, and that forwarder still owns
58
+ * the destination. So the plan it emits genuinely does not know which expander
59
+ * applies, and saying "install the Splunk app" would be a guess. Name all
60
+ * three and let the customer pick the row that matches their stack.
61
+ */
62
+ export const EXPANDER_PREREQUISITE_GENERAL = 'Compaction is only lossless end to end when the destination can expand the encoded events again at read time, ' +
63
+ 'and that expander is a separate install on the destination, not part of this release: ' +
64
+ 'the [10x Splunk app](https://doc.log10x.com/apps/receiver/compact/splunk/), ' +
65
+ 'the [l1es plugin](https://doc.log10x.com/apps/receiver/compact/elasticsearch/) for self-managed Elasticsearch 8.17.0 / OpenSearch 2.19.0, ' +
66
+ 'or the [10x ClickHouse view](https://doc.log10x.com/apps/receiver/compact/clickhouse/). ' +
67
+ 'Install it before you compact anything the destination is searched on, or those searches return compacted lines. ' +
68
+ 'Managed and serverless platforms (Datadog, CloudWatch, Elastic Cloud Serverless) have nowhere to install one — ' +
69
+ 'use tier_down or offload there instead of compaction.';
70
+ //# sourceMappingURL=compaction-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-support.js","sourceRoot":"","sources":["../../../src/lib/advisor/compaction-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;;;;;GAMG;AACH,MAAM,aAAa,GAA+C;IAChE,MAAM,EAAE,sDAAsD;IAC9D,aAAa,EAAE,6DAA6D;CAC7E,CAAC;AAUF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA8B;IAC9D,IAAI,WAAW,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IAE9D,MAAM,KAAK,GAAG,uBAAuB,CAAC,WAAqB,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC,WAAqB,CAAC,EAAE,CAAC;IACzF,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,uCAAuC;IACvC,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,IAAI,wDAAwD;QAC5F,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,gHAAgH;IAChH,wFAAwF;IACxF,8EAA8E;IAC9E,4IAA4I;IAC5I,0FAA0F;IAC1F,mHAAmH;IACnH,iHAAiH;IACjH,uDAAuD,CAAC"}
@@ -7,7 +7,12 @@
7
7
  *
8
8
  * The same builder serves both apps. The current chart format unifies
9
9
  * around a single Receiver workload with two opt-in feature flags:
10
- * - `optimize`: losslessly compact events (~50-80% reduction; per-destination, lossless only on Splunk / self-hosted ES / ClickHouse).
10
+ * - `optimize`: compact events (~50-80% reduction, per-destination). The
11
+ * losslessness is not a property of the encoding alone: it holds only
12
+ * where the DESTINATION has the 10x expander installed to expand events
13
+ * again at read time — the Splunk app, the l1es Elasticsearch/OpenSearch
14
+ * plugin, the ClickHouse view. Destinations with no expander (Datadog,
15
+ * CloudWatch) cannot use the flag at all. See `./compaction-support.ts`.
11
16
  * - `readOnly` — emit metrics, do NOT write events back through the
12
17
  * forwarder (passive observation).
13
18
  * The flags are mutually exclusive at the chart level. AdvisorApp keeps
@@ -72,6 +77,10 @@ export interface ReporterAdviseArgs {
72
77
  * blocks when app='reporter' (Reporter has no write-back path to
73
78
  * encode events on). Maps to `tenx.optimize: true` in every
74
79
  * supported chart's values.yaml.
80
+ *
81
+ * Reading those events back needs the destination's 10x expander, so a plan
82
+ * that compacts states that prerequisite in preflight, and a destination
83
+ * with no expander to install blocks the flag outright.
75
84
  */
76
85
  optimize?: boolean;
77
86
  /**
@@ -7,7 +7,12 @@
7
7
  *
8
8
  * The same builder serves both apps. The current chart format unifies
9
9
  * around a single Receiver workload with two opt-in feature flags:
10
- * - `optimize`: losslessly compact events (~50-80% reduction; per-destination, lossless only on Splunk / self-hosted ES / ClickHouse).
10
+ * - `optimize`: compact events (~50-80% reduction, per-destination). The
11
+ * losslessness is not a property of the encoding alone: it holds only
12
+ * where the DESTINATION has the 10x expander installed to expand events
13
+ * again at read time — the Splunk app, the l1es Elasticsearch/OpenSearch
14
+ * plugin, the ClickHouse view. Destinations with no expander (Datadog,
15
+ * CloudWatch) cannot use the flag at all. See `./compaction-support.ts`.
11
16
  * - `readOnly` — emit metrics, do NOT write events back through the
12
17
  * forwarder (passive observation).
13
18
  * The flags are mutually exclusive at the chart level. AdvisorApp keeps
@@ -16,6 +21,7 @@
16
21
  * different verify wording, blocks optimize since there are no
17
22
  * write-back events to encode); `receiver` exposes the flags directly.
18
23
  */
24
+ import { compactionSupport, EXPANDER_PREREQUISITE_GENERAL, } from './compaction-support.js';
19
25
  import { RECEIVER_FORWARDER_SPECS, STANDALONE_SPEC, POLICY_CONFIGMAP_NAME, renderPolicyConfigMapManifest, } from './reporter-forwarders.js';
20
26
  /** Produce the plan. Never throws — surfaces missing input as `blockers`. */
21
27
  export async function buildReporterPlan(args) {
@@ -69,6 +75,15 @@ export async function buildReporterPlan(args) {
69
75
  if (args.optimize && args.readOnly) {
70
76
  blockers.push('optimize=true is a no-op when mode=readonly. Compact encoding only matters when events are written back through the forwarder; in read-only mode the receiver emits metrics only. Pick one: optimize=true OR mode=readonly.');
71
77
  }
78
+ // Compaction is lossless only where the destination expands the encoded
79
+ // events again. Where no expander can be installed, the events arrive
80
+ // permanently unreadable AND there is nothing to trade for it — the cost
81
+ // model pins compact_ratio at 1.0 on those destinations. Not a lever to
82
+ // warn about; a combination to refuse.
83
+ const compaction = compactionSupport(destination);
84
+ if (effectiveOptimize && compaction.kind === 'unsupported') {
85
+ blockers.push(`optimize=true cannot be used with destination=${destination}. ${compaction.displayName} has no 10x expander, so compacted events would land there unreadable and stay that way, and compaction saves nothing on a destination billed this way. Drop \`optimize\`, or price tier_down/offload instead with \`log10x_estimate_savings\`.`);
86
+ }
72
87
  // logstash receiver path is supported via the upstream elastic/logstash
73
88
  // chart + sidecar overlay (extraContainers as a pipe-string, secretMounts
74
89
  // for the license, logstashConfig + logstashPipeline for the two-pipeline
@@ -88,6 +103,46 @@ export async function buildReporterPlan(args) {
88
103
  blockers.push('destination=splunk requires `splunk_hec_token`.');
89
104
  }
90
105
  const preflight = await runPreflight(snapshot, forwarder, releaseName, namespace, spec, app, installMode);
106
+ // The expander installs on the DESTINATION, not in this cluster, and is
107
+ // usually a different team's change — so it belongs in preflight, ahead of
108
+ // the helm commands, rather than inline among them. Status is 'unknown':
109
+ // the advisor never connects to the destination and cannot tell whether the
110
+ // app or plugin is already there.
111
+ //
112
+ // Emitted for every plan that can compact. That is broader than
113
+ // `optimize === true`, because a receiver plan carries the compactReceiver
114
+ // section telling the customer to turn compaction on later — the plan makes
115
+ // the recommendation, so the plan owes the prerequisite. A read-only
116
+ // receiver never writes events back and a Reporter has no write-back path
117
+ // at all; neither can compact, and neither mentions it.
118
+ const canCompact = app === 'receiver' && !effectiveReadOnly;
119
+ if (canCompact) {
120
+ if (compaction.kind === 'expander-required') {
121
+ preflight.push({
122
+ name: 'destination-expander',
123
+ status: 'unknown',
124
+ detail: `Compaction needs ${compaction.requires}. Confirm it is installed before compacting anything you search on` +
125
+ (compaction.docsUrl ? ` — ${compaction.docsUrl}` : '') +
126
+ '.',
127
+ });
128
+ }
129
+ else if (compaction.kind === 'unsupported') {
130
+ preflight.push({
131
+ name: 'destination-expander',
132
+ status: 'fail',
133
+ detail: `${compaction.displayName} has no 10x expander, so compaction is not available on this destination — ` +
134
+ 'compacted events would arrive unreadable. Reduce spend here with tier_down or offload instead ' +
135
+ '(`log10x_estimate_savings`).',
136
+ });
137
+ }
138
+ else {
139
+ preflight.push({
140
+ name: 'destination-expander',
141
+ status: 'unknown',
142
+ detail: EXPANDER_PREREQUISITE_GENERAL,
143
+ });
144
+ }
145
+ }
91
146
  const notes = [];
92
147
  const appTitle = app === 'reporter' ? 'Reporter' : 'Receiver';
93
148
  if (snapshot.recommendations.alreadyInstalled[app]) {
@@ -241,7 +296,7 @@ function detectExistingHelmRelease(snapshot, forwarder) {
241
296
  }
242
297
  function buildCompactReceiverGitopsExplainer(opts) {
243
298
  return {
244
- headline: 'The compactReceiver decides per-event whether to emit `encode()` (compact, typically 50-80% smaller where the destination is compaction-capable) or `fullText`. The decision is per-container: a CSV keyed by k8s_container name lists which containers to compact. Wire GitOps once and the MCP can author per-container PRs (`log10x_configure_engine`); the engine hot-reloads the CSV without a pod restart.',
299
+ headline: 'The compactReceiver decides per-event whether to emit `encode()` (compact, typically 50-80% smaller on a destination whose 10x expander is installed — see the prerequisite below) or `fullText`. The decision is per-container: a CSV keyed by k8s_container name lists which containers to compact. Wire GitOps once and the MCP can author per-container PRs (`log10x_configure_engine`); the engine hot-reloads the CSV without a pod restart.',
245
300
  whenToEnable: [
246
301
  'You want **selective** compaction — compact specific containers/services but preserve others (audit, compliance, debug).',
247
302
  'You want decisions to evolve over time without redeploying the receiver.',
@@ -250,7 +305,7 @@ function buildCompactReceiverGitopsExplainer(opts) {
250
305
  whenToSkip: [
251
306
  opts.optimize
252
307
  ? 'The chart `optimize` feature flag is already set on this plan, which compacts every event. Add GitOps only if you need to opt SPECIFIC containers OUT of compaction (audit/compliance).'
253
- : 'You will turn on the chart `optimize` feature flag later to compact every event uniformly — no per-container decisions needed.',
308
+ : 'You will turn on the chart `optimize` feature flag later to compact every event uniformly — no per-container decisions needed. Install the destination expander first (see the prerequisite below).',
254
309
  'You will not be using the receiver app at all (this section is receiver-only).',
255
310
  ],
256
311
  repoLayout: [
@@ -271,6 +326,7 @@ function buildCompactReceiverGitopsExplainer(opts) {
271
326
  example: 'log10x_configure_engine \\\n gitops_repo=your-org/your-config-repo \\\n service=payment-service \\\n target_percent=30 \\\n destination=datadog',
272
327
  },
273
328
  caveats: [
329
+ EXPANDER_PREREQUISITE_GENERAL,
274
330
  'The default `paths` glob in `pipelines/gitops/config.yaml` is hardcoded to `test/*.csv` for local testing. Override either by forking the config repo and editing the glob, or by setting `GH_PATH=pipelines/run/receive/compact/*` (Gap A — env override is being wired up).',
275
331
  'Customers running multiple receiver pods all watching the same GitOps repo will see fan-out: a single PR triggers reload on every pod within a poll window. That is the intended behavior — kept here as a heads-up for capacity planning.',
276
332
  'Hot-reload requires in-place writes (the gitops pattern). Do not source the cap-file via a Kubernetes ConfigMap mount — CM swaps the file via a symlink rename, which the engine\'s stat-based watcher will not see.',
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/lib/advisor/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../src/lib/advisor/reporter.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ The Java decoder is used by platform plugins that need to expand compact events
17
17
 
18
18
  ## :material-language-javascript: JavaScript Decoder
19
19
 
20
- The JavaScript decoder expands compact events client-side, for example in the [Dev app](https://doc.log10x.com/apps/dev/)'s tabbed event viewer (Raw, Template, Variables, Pattern).
20
+ The JavaScript decoder expands compact events client-side, for example in the [homepage demo](https://log10x.com/#run-poc){target="_blank"} event viewer (Raw, Template, Variables, Pattern).
21
21
 
22
22
  <div style="display: flex; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap;" markdown>
23
23
  [:material-github: log10x-decoder-js](https://github.com/log-10x/log10x-decoder-js){ .md-button target="_blank" }
@@ -10,7 +10,7 @@ Repositories in the [log-10x](https://github.com/log-10x){target="_blank"} org a
10
10
 
11
11
  ```mermaid
12
12
  graph LR
13
- A["⚙️ Compiler<br/>Generate Symbols"] --> B["💻 Dev<br/>Test Locally"]
13
+ A["⚙️ Compiler<br/>Generate Symbols"] --> B["🤖 MCP<br/>Cost POC"]
14
14
  B --> C["📊 Reporter<br/>Analyze Costs (DaemonSet)"]
15
15
  C --> D["⚡ Receiver<br/>Filter or Compact @ Source"]
16
16
  D --> E["☁️ Retriever<br/>S3 Data Lake"]
@@ -57,7 +57,7 @@ Get the engine, clone the config workspace, and start exploring.
57
57
  | [modules] | Pre-built app and pipeline definitions (reference) |
58
58
  | [docker-images] | Container images for the engine |
59
59
 
60
- **Docs:** [Install Guide](https://doc.log10x.com/install/) · [Config Reference](https://doc.log10x.com/config/) · [Compiler](https://doc.log10x.com/compile/) · [Dev](https://doc.log10x.com/apps/dev/) · [Reporter](https://doc.log10x.com/apps/reporter/) · [MCP](https://doc.log10x.com/apps/)
60
+ **Docs:** [Install Guide](https://doc.log10x.com/install/) · [Config Reference](https://doc.log10x.com/config/) · [Compiler](https://doc.log10x.com/compile/) · [Reporter](https://doc.log10x.com/apps/reporter/) · [MCP](https://doc.log10x.com/apps/)
61
61
 
62
62
  ---
63
63
 
@@ -680,7 +680,7 @@ export class ConfigLoadUnit extends TenXUnit {
680
680
 
681
681
  if (this.unitName == "configLoader") {
682
682
 
683
- TenXConsole.log("🛠️ Launching 10x Engine: Dev app (local development & testing environment)");
683
+ TenXConsole.log("🛠️ Launching 10x Engine (local run)");
684
684
  }
685
685
  }
686
686
 
@@ -126,7 +126,7 @@ Generates a new API key for the authenticated user. The previous key is **invali
126
126
  | **Request Body** | None (empty) |
127
127
 
128
128
  !!! note "Save the new key from the response"
129
- The response body contains the freshly-minted `api_key`. Capture it from there for any scripted or automated flow. If you miss it, the same key is viewable at [console.log10x.com](https://console.log10x.com) → Profile → API Settings.
129
+ The response body contains the freshly-minted `api_key`. Capture it from there for any scripted or automated flow. If you miss it, mint a replacement with `log10x_rotate_api_key`; the old key is invalidated the instant the new one exists.
130
130
 
131
131
  !!! note "New key takes effect within seconds"
132
132
  The old key stops working immediately, but the new key may need up to a few seconds before it is accepted on every request. If the first call right after rotation fails with `401` or `403`, retry once after a short wait. Scripted callers should wrap the first post-rotation request in a brief retry loop.
@@ -24,7 +24,7 @@ Compile custom symbols if:
24
24
  Operating on well-defined objects enables direct access to [symbol](https://doc.log10x.com/run/transform/structure/#symbols) and [variable](https://doc.log10x.com/run/transform/structure/#variables) values, eliminating the overhead of parsing repetitive JSON structures and evaluating brittle, computationally expensive regex patterns for each event.
25
25
 
26
26
  !!! l1x-gift "Out-of-the-Box Ready"
27
- The 10x runtime includes a built-in symbol library with [industry-standard frameworks](https://doc.log10x.com/compile/pull/#default-symbols) (Kubernetes, OpenTelemetry, Spring Boot, Django, and 30+ others). You can immediately test the [Dev app](https://doc.log10x.com/apps/dev/) with [OpenTelemetry sample files](https://log10x-public-assets.s3.amazonaws.com/samples/otel-k8s/medium/input/otel-sample.log) or try it with your own logs for out-of-the-box optimization, even without custom symbol compilation.
27
+ The 10x runtime includes a built-in symbol library with [industry-standard frameworks](https://doc.log10x.com/compile/pull/#default-symbols) (Kubernetes, OpenTelemetry, Spring Boot, Django, and 30+ others). You can immediately run a local cost POC with [OpenTelemetry sample files](https://log10x-public-assets.s3.amazonaws.com/samples/otel-k8s/medium/input/otel-sample.log) or try it with your own logs for out-of-the-box optimization, even without custom symbol compilation.
28
28
 
29
29
  ## :material-cog-transfer-outline: Workflow
30
30
 
@@ -1643,7 +1643,6 @@ To configure advanced options (optional) for the Compiler app, [:material-cog: E
1643
1643
  jarFiles: []
1644
1644
 
1645
1645
  # 'metricEndpoint' specifies the Prometheus endpoint to report usage/health metrics (enterprise version only).
1646
- # metricEndpoint: https://prometheus.log10x.com/api/v1/write
1647
1646
 
1648
1647
  # specifies a list of launch arguments that are disallowed from either command line or user config files.
1649
1648
  disabledArgs: []
@@ -48,7 +48,7 @@ The [MCP Server](https://doc.log10x.com/apps/mcp/) drives the rest of 10x from a
48
48
 
49
49
  ??? tenx-recovery "What data does the MCP Server see"
50
50
 
51
- - API calls to your metrics backend (pre-aggregated metrics, no log content). The default hosted endpoint (prometheus.log10x.com) is optional; you can point at your own Prometheus or run air-gapped.
51
+ - API calls to your metrics backend (pre-aggregated metrics, no log content). There is no default endpoint: unless you nominate one, the engine collects metrics in-process and forwards them nowhere. Point it at your own Prometheus, or at the optional hosted `prometheus.log10x.com`, or run air-gapped.
52
52
  - kubeconfig read access (only what `kubectl get` would surface)
53
53
  - Your log analyzer credentials (for dependency checks; read-only, local-only)
54
54
 
@@ -14,7 +14,7 @@ The MCP registers the tools your environment supports. With a key (or after sign
14
14
  Three ways to authenticate, in order of convenience:
15
15
 
16
16
  1. **GitHub sign-in (recommended)**: install with no `LOG10X_API_KEY`, then ask the LLM to "sign in to Log10x". `log10x_signin` runs the GitHub Device Flow, mints a key, and saves it to `~/.log10x/credentials` (mode 0600), shared across every MCP host on the machine.
17
- 2. **Paste a key**: copy it from [console.log10x.com](https://console.log10x.com) → Profile → API Settings and add it to the server's `env` block:
17
+ 2. **Paste a key**: use one the workspace already holds (issued by a prior sign-in or an admin) and add it to the server's `env` block:
18
18
 
19
19
  ```json
20
20
  "env": { "LOG10X_API_KEY": "your-api-key" }
@@ -30,7 +30,7 @@ The stdout is exactly what `log10x_validate` returned to the agent. Diff against
30
30
 
31
31
  `@apps/mcp` omits `httpCode` and `lookup` enrichment because their embedded scripts reference engine builtins that move between releases. Keeping the validate runtime pinned to stable primitives means `log10x_validate` behaves consistently across engine upgrades, agents get the same answer in March as they did in January.
32
32
 
33
- If you need richer enrichment for local exploration (the full pipeline including HTTP code classification and lookup tables), use [Dev](https://doc.log10x.com/apps/dev/ "Test and validate log, symbol library and config files locally") directly instead of `@apps/mcp`.
33
+ If you need richer enrichment for local exploration (the full pipeline including HTTP code classification and lookup tables), use the `@apps/dev` engine pipeline directly instead of `@apps/mcp`.
34
34
 
35
35
  ## :material-wrench-outline: Config Files
36
36
 
@@ -187,7 +187,7 @@ To configure the MCP test-drive app, [:material-cog: Edit](https://doc.log10x.co
187
187
  # or filters to be validated alongside this app — that file is mounted by
188
188
  # the CLI alongside this config.
189
189
  #
190
- # To learn more see https://doc.log10x.com/apps/dev (the @apps/dev sibling).
190
+ # (the @apps/dev sibling pipeline).
191
191
 
192
192
  tenx: run
193
193
 
@@ -68,7 +68,7 @@ Scopes requested are the standard OIDC set `openid profile email offline_access`
68
68
  "api_key": {
69
69
  "type": "string",
70
70
  "minLength": 1,
71
- "description": "Log10x API key to sign in with directly (no browser). Validated against /api/v1/user before saving. Use this when the user already has a key from console.log10x.com → Profile → API Settings, or when issued out-of-band by a workspace admin. Mutually exclusive with `device_code`."
71
+ "description": "Log10x API key to sign in with directly (no browser). Validated against /api/v1/user before saving. Use this when the user already holds a key from a prior sign-in, or one issued out-of-band by a workspace admin. Mutually exclusive with `device_code`."
72
72
  },
73
73
  "wait_seconds": {
74
74
  "type": "integer",
@@ -6,7 +6,7 @@ icon: material/logout-variant
6
6
 
7
7
  Wipe the local Log10x credentials file on this machine. Returns confirmation that `~/.log10x/credentials` is removed and account-scoped tools fall back to demo mode.
8
8
 
9
- Local-only: the key on log10x.com is NOT revoked, so rotate at [console.log10x.com](https://console.log10x.com) → Profile → API Settings if the key was exposed.
9
+ Local-only: the key on log10x.com is NOT revoked, so sign in again and run `log10x_rotate_api_key` if the key was exposed.
10
10
 
11
11
  ## :material-code-braces: Example
12
12
 
@@ -16,7 +16,7 @@ Local-only: the key on log10x.com is NOT revoked, so rotate at [console.log10x.c
16
16
 
17
17
  !!! tenx-answer "Log10x"
18
18
 
19
- Wiped `~/.log10x/credentials`. Falling back to demo mode. The API key on log10x.com is NOT revoked. Rotate at [console.log10x.com](https://console.log10x.com) → Profile → API Settings if needed.
19
+ Wiped `~/.log10x/credentials`. Falling back to demo mode. The API key on log10x.com is NOT revoked. Sign in again and run `log10x_rotate_api_key` if the key was exposed.
20
20
 
21
21
  ## :material-chat-question-outline: More to ask
22
22
 
@@ -34,7 +34,7 @@ Distinct from analyzer field histograms: skew is measured within the structural
34
34
 
35
35
  ## :material-check-decagram-outline: Prerequisites
36
36
 
37
- None. The local 10x engine runs on the paste; it needs [tenx](../../../dev/) **1.0.22+** installed.
37
+ None. The local 10x engine runs on the paste; it needs [tenx](../../../../install/) **1.0.22+** installed.
38
38
 
39
39
  ## :material-code-json: Schema and samples
40
40
 
@@ -22,4 +22,4 @@ Each detector returns a [StructuredOutput](../index.md#json-by-default-output) e
22
22
 
23
23
  ## :material-check-decagram-outline: Prerequisites
24
24
 
25
- None. The detector accepts a paste array and runs the local 10x engine, which needs [tenx](../../../dev/) **1.0.22+** installed.
25
+ None. The detector accepts a paste array and runs the local 10x engine, which needs [tenx](../../../../install/) **1.0.22+** installed.
@@ -35,7 +35,7 @@ Call this before projecting savings for a service so the projection rests on mea
35
35
 
36
36
  A log analyzer connector configured for the environment, and a local Log10x engine so the sampled events can run through it, either:
37
37
 
38
- - the [`tenx` CLI](../../../dev/) ([install for macOS/Linux/Windows](../../../../install/))
38
+ - the `tenx` CLI ([install for macOS/Linux/Windows](../../../../install/))
39
39
  - a local Docker container (`LOG10X_TENX_MODE=docker`, auto-detected and preferred when the mode is unset)
40
40
 
41
41
  ## :material-code-json: Schema and samples
@@ -22,6 +22,7 @@ Chains to [log10x_pattern_detail](pattern-detail.md) when the user drills into a
22
22
 
23
23
  !!! tenx-answer "Log10x"
24
24
 
25
+ ```text
25
26
  Preview: drop on service "checkout-svc" (18 patterns shown)
26
27
  -----------------------------------------------------------------------
27
28
  # Descriptor Volume % Service Sev First seen Trend
@@ -33,6 +34,7 @@ Chains to [log10x_pattern_detail](pattern-detail.md) when the user drills into a
33
34
  Full data written to: /tmp/log10x-preview-drop-checkout-svc.csv
34
35
 
35
36
  What next? Give a pattern number to drill in, type "Apply", or "Mode" to pick differently.
37
+ ```
36
38
 
37
39
  ## :material-chat-question-outline: More to ask
38
40
 
@@ -36,5 +36,5 @@ Read-only credentials for your log analyzer for [POC submit](poc-from-siem-submi
36
36
 
37
37
  Every path runs the local 10x engine, which also needs:
38
38
 
39
- - the [`tenx` CLI](../../../dev/) ([install for macOS/Linux/Windows](../../../../install/)), or
39
+ - the `tenx` CLI ([install for macOS/Linux/Windows](../../../../install/)), or
40
40
  - a local Docker container (`LOG10X_TENX_MODE=docker`, auto-detected and preferred when the mode is unset).
@@ -52,7 +52,7 @@ The pricing is a list-rate matrix, not a prediction of a specific bill; for that
52
52
 
53
53
  `kubectl` on PATH with a working `kubeconfig`. The local 10x engine runs the analysis, so it also needs:
54
54
 
55
- - the [`tenx` CLI](../../../dev/) ([install for macOS/Linux/Windows](../../../../install/)), or
55
+ - the `tenx` CLI ([install for macOS/Linux/Windows](../../../../install/)), or
56
56
  - a local Docker container (`LOG10X_TENX_MODE=docker`, auto-detected and preferred when the mode is unset).
57
57
 
58
58
  There is no automatic fallthrough from [POC submit](poc-from-siem-submit.md) when log analyzer credentials are missing. The two paths frame cost differently.
@@ -409,7 +409,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
409
409
  value: "true" # ← add this
410
410
  ```
411
411
 
412
- The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Fluentd's output destinations are unaffected. `demo` and `limited` license types cannot run airgapped; the engine warns and falls back to online.
412
+ The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Fluentd's output destinations are unaffected.Airgapped mode is honored for every license type.
413
413
 
414
414
  === ":simple-fluentbit: Fluent-bit"
415
415
 
@@ -553,7 +553,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
553
553
  value: "true" # ← add this
554
554
  ```
555
555
 
556
- The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Fluent Bit's output destinations are unaffected. `demo` and `limited` license types cannot run airgapped; the engine warns and falls back to online.
556
+ The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Fluent Bit's output destinations are unaffected.Airgapped mode is honored for every license type.
557
557
 
558
558
  === ":simple-beats: Filebeat"
559
559
 
@@ -565,7 +565,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
565
565
  tenx:
566
566
  enabled: true
567
567
  # Required. The engine does not start without one.
568
- # Download from https://console.log10x.com
568
+ # Optional: without it the engine evaluates. https://doc.log10x.com/manage/license/
569
569
  licenseJwt: "<YOUR-10X-LICENSE-JWT>"
570
570
  # receive | optimize | report
571
571
  kind: "receive"
@@ -715,7 +715,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
715
715
  value: "true" # ← add this
716
716
  ```
717
717
 
718
- The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Filebeat's output destinations are unaffected. `demo` and `limited` license types cannot run airgapped; the engine warns and falls back to online.
718
+ The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Filebeat's output destinations are unaffected.Airgapped mode is honored for every license type.
719
719
 
720
720
  === ":simple-opentelemetry: OTel Collector"
721
721
 
@@ -861,7 +861,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
861
861
  value: "true" # ← add this
862
862
  ```
863
863
 
864
- The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. The Collector's exporters are unaffected. `demo` and `limited` license types cannot run airgapped; the engine warns and falls back to online.
864
+ The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. The Collector's exporters are unaffected.Airgapped mode is honored for every license type.
865
865
 
866
866
  === ":simple-vector: Vector"
867
867
 
@@ -1006,7 +1006,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
1006
1006
  value: "true" # ← add this
1007
1007
  ```
1008
1008
 
1009
- The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Vector's destinations are unaffected. `demo` and `limited` license types cannot run airgapped; the engine warns and falls back to online.
1009
+ The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Vector's destinations are unaffected.Airgapped mode is honored for every license type.
1010
1010
 
1011
1011
  === ":simple-logstash: Logstash"
1012
1012
 
@@ -1128,7 +1128,7 @@ The OTel Collector overlay moves the sidecar's OTLP listener with `TENX_OTEL_COL
1128
1128
  value: "true" # ← add this
1129
1129
  ```
1130
1130
 
1131
- The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Logstash's outputs are unaffected. `demo` and `limited` license types cannot run airgapped; the engine warns and falls back to online.
1131
+ The engine then verifies the license JWT locally against the embedded public key and makes zero outbound calls to the Log10x gateway. Logstash's outputs are unaffected.Airgapped mode is honored for every license type.
1132
1132
 
1133
1133
  === ":simple-splunk: Splunk UF"
1134
1134