yini-parser 1.3.1-beta → 1.3.3-beta
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/CHANGELOG.md +18 -2
- package/README.md +53 -176
- package/dist/YINI.d.ts +4 -4
- package/dist/YINI.js +0 -120
- package/dist/YINI.js.map +1 -1
- package/dist/core/options/defaultParserOptions.js +1 -7
- package/dist/core/options/defaultParserOptions.js.map +1 -1
- package/dist/core/options/optionsFunctions.js +7 -5
- package/dist/core/options/optionsFunctions.js.map +1 -1
- package/dist/core/resultMetadataBuilder.js +0 -1
- package/dist/core/resultMetadataBuilder.js.map +1 -1
- package/dist/dev/main.d.ts +1 -1
- package/dist/dev/main.js +24 -4
- package/dist/dev/main.js.map +1 -1
- package/dist/dev/quick-test-samples/defect-inputs.d.ts +37 -0
- package/dist/dev/quick-test-samples/defect-inputs.js +106 -0
- package/dist/dev/quick-test-samples/defect-inputs.js.map +1 -0
- package/dist/dev/quick-test-samples/valid-inputs.d.ts +21 -0
- package/dist/dev/quick-test-samples/valid-inputs.js +422 -0
- package/dist/dev/quick-test-samples/valid-inputs.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/string.d.ts +2 -0
- package/dist/utils/string.js +12 -1
- package/dist/utils/string.js.map +1 -1
- package/examples/nested-output.js +1 -1
- package/examples/nested.yini +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resultMetadataBuilder.js","sourceRoot":"","sources":["../../src/core/resultMetadataBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"resultMetadataBuilder.js","sourceRoot":"","sources":["../../src/core/resultMetadataBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/dev/main.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import './quick-test-samples/valid-inputs';
|
package/dist/dev/main.js
CHANGED
|
@@ -16,6 +16,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
const env_1 = require("../config/env");
|
|
17
17
|
const print_1 = require("../utils/print");
|
|
18
18
|
const YINI_1 = __importDefault(require("../YINI"));
|
|
19
|
+
const defect_inputs_1 = require("./quick-test-samples/defect-inputs");
|
|
20
|
+
require("./quick-test-samples/valid-inputs"); // validConfigComplex,
|
|
19
21
|
(0, print_1.debugPrint)();
|
|
20
22
|
(0, print_1.debugPrint)('-> Entered dev/main.ts');
|
|
21
23
|
(0, print_1.debugPrint)();
|
|
@@ -256,12 +258,30 @@ else {
|
|
|
256
258
|
const yiniContent = ` #!/usr/bin/env yini
|
|
257
259
|
^ App
|
|
258
260
|
name = "Shebang-demo"`;
|
|
259
|
-
console.log(
|
|
261
|
+
console.log('--!!!------------------------------------------');
|
|
262
|
+
console.log((0, print_1.toPrettyJSON)(
|
|
263
|
+
// YINI.parse(validConfig, {
|
|
264
|
+
YINI_1.default.parse(defect_inputs_1.defectConfig2Combo3, {
|
|
260
265
|
strictMode: true,
|
|
261
|
-
failLevel: '
|
|
262
|
-
includeMetadata:
|
|
263
|
-
|
|
266
|
+
failLevel: 'ignore-errors',
|
|
267
|
+
includeMetadata: true,
|
|
268
|
+
includeDiagnostics: true,
|
|
269
|
+
// requireDocTerminator: 'optional',
|
|
264
270
|
})));
|
|
271
|
+
// console.log('--!!!------------------------------------------')
|
|
272
|
+
// console.log(
|
|
273
|
+
// toPrettyJSON(
|
|
274
|
+
// // YINI.parse(validConfig, {
|
|
275
|
+
// YINI.parse(defectConfigCombo3, {
|
|
276
|
+
// strictMode: true,
|
|
277
|
+
// // failLevel: 'auto',
|
|
278
|
+
// failLevel: 'ignore-errors',
|
|
279
|
+
// includeMetadata: true,
|
|
280
|
+
// includeDiagnostics: true,
|
|
281
|
+
// // requireDocTerminator: 'optional',
|
|
282
|
+
// }),
|
|
283
|
+
// ),
|
|
284
|
+
// )
|
|
265
285
|
// console.log(
|
|
266
286
|
// toPrettyJSON(
|
|
267
287
|
// YINI.parseFile(
|
package/dist/dev/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/dev/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;AAEH,uCAQsB;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/dev/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development-only YINI samples with intentional defects.
|
|
3
|
+
*
|
|
4
|
+
* These inputs are used for quick manual testing during development
|
|
5
|
+
* via src/dev/.
|
|
6
|
+
*
|
|
7
|
+
* Each sample contains ONE clearly documented defect.
|
|
8
|
+
* They are NOT part of the automated test suite.
|
|
9
|
+
*
|
|
10
|
+
* All real testing belongs in /tests/.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Invalid assignment operator (`:=` instead of `=`).
|
|
14
|
+
*/
|
|
15
|
+
export declare const defectInvalidAssignmentOperator = "\n^ App\nname = 'Hello'\ntxt := 'World' // INVALID: assignment operator must be \"=\"\n";
|
|
16
|
+
/**
|
|
17
|
+
* Invalid section name (starts with a number and contains hyphen).
|
|
18
|
+
*/
|
|
19
|
+
export declare const defectInvalidSectionName = "\n^ App\nname = \"My Application\"\n\n^ 20-Database // INVALID: section name must start with a letter or underscore\nhost = \"localhost\"\nport = 5432\n";
|
|
20
|
+
/**
|
|
21
|
+
* Invalid numeric literal (double underscore).
|
|
22
|
+
*/
|
|
23
|
+
export declare const defectInvalidNumericLiteral = "\n^ App\nname = \"Demo\"\n\n^ Database\nhost = \"localhost\"\nport = 5432\n\nsomeKey = 33__33 // INVALID: malformed numeric literal\n";
|
|
24
|
+
/**
|
|
25
|
+
* Duplicate key in the same section.
|
|
26
|
+
*/
|
|
27
|
+
export declare const defectDuplicateKey = "\n^ App\nname = \"Demo\"\nname = \"Override\" // INVALID: duplicate key in same section\n";
|
|
28
|
+
/**
|
|
29
|
+
* Section level jump (^^ without parent ^).
|
|
30
|
+
*/
|
|
31
|
+
export declare const defectSectionLevelJump = "\n^^ Logging // INVALID: section level jumps without parent\nenabled = true\n";
|
|
32
|
+
/**
|
|
33
|
+
* Unterminated string literal.
|
|
34
|
+
*/
|
|
35
|
+
export declare const defectUnterminatedString = "\n^ App\nname = \"Demo\nversion = \"1.0.0\"\n";
|
|
36
|
+
export declare const defectConfigCombo3 = "\n^ App\nname = \"Combo defects sample\"\n\nmode := \"dev\" // INVALID #1: ':=' is not a valid assignment operator (must be '=')\n\n^ 2Database // INVALID #2: section name starts with a digit (must start with A-Z/_ or be backticked)\nhost = \"localhost\"\n\nports = [80, 443, 8080 // INVALID #3: missing closing ']' in array literal\n";
|
|
37
|
+
export declare const defectConfig2Combo3 = "\n^ App\nname = \"ComboTest\"\nversion = 1.0\n\n ^^ Database\n host = \"localhost\"\n port = 54_32 // INVALID number format: underscores not allowed inside numbers\n\n auth = { user: \"admin\", pass: \"secret\" }\n\n ^^^ Logging\n enabled = maybe // INVALID boolean: only true/false/on/off/yes/no allowed\n\n ^ Network\n timeout = 30\n\n^ Server\n host = \"0.0.0.0\"\n port := 8080 // INVALID assignment operator: must use \"=\" not \":=\"\n\n ^^ Security\n useTLS = true\n";
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// src/dev/quick-test-samples/defect-inputs.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.defectConfig2Combo3 = exports.defectConfigCombo3 = exports.defectUnterminatedString = exports.defectSectionLevelJump = exports.defectDuplicateKey = exports.defectInvalidNumericLiteral = exports.defectInvalidSectionName = exports.defectInvalidAssignmentOperator = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Development-only YINI samples with intentional defects.
|
|
7
|
+
*
|
|
8
|
+
* These inputs are used for quick manual testing during development
|
|
9
|
+
* via src/dev/.
|
|
10
|
+
*
|
|
11
|
+
* Each sample contains ONE clearly documented defect.
|
|
12
|
+
* They are NOT part of the automated test suite.
|
|
13
|
+
*
|
|
14
|
+
* All real testing belongs in /tests/.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Invalid assignment operator (`:=` instead of `=`).
|
|
18
|
+
*/
|
|
19
|
+
exports.defectInvalidAssignmentOperator = `
|
|
20
|
+
^ App
|
|
21
|
+
name = 'Hello'
|
|
22
|
+
txt := 'World' // INVALID: assignment operator must be "="
|
|
23
|
+
`;
|
|
24
|
+
/**
|
|
25
|
+
* Invalid section name (starts with a number and contains hyphen).
|
|
26
|
+
*/
|
|
27
|
+
exports.defectInvalidSectionName = `
|
|
28
|
+
^ App
|
|
29
|
+
name = "My Application"
|
|
30
|
+
|
|
31
|
+
^ 20-Database // INVALID: section name must start with a letter or underscore
|
|
32
|
+
host = "localhost"
|
|
33
|
+
port = 5432
|
|
34
|
+
`;
|
|
35
|
+
/**
|
|
36
|
+
* Invalid numeric literal (double underscore).
|
|
37
|
+
*/
|
|
38
|
+
exports.defectInvalidNumericLiteral = `
|
|
39
|
+
^ App
|
|
40
|
+
name = "Demo"
|
|
41
|
+
|
|
42
|
+
^ Database
|
|
43
|
+
host = "localhost"
|
|
44
|
+
port = 5432
|
|
45
|
+
|
|
46
|
+
someKey = 33__33 // INVALID: malformed numeric literal
|
|
47
|
+
`;
|
|
48
|
+
/**
|
|
49
|
+
* Duplicate key in the same section.
|
|
50
|
+
*/
|
|
51
|
+
exports.defectDuplicateKey = `
|
|
52
|
+
^ App
|
|
53
|
+
name = "Demo"
|
|
54
|
+
name = "Override" // INVALID: duplicate key in same section
|
|
55
|
+
`;
|
|
56
|
+
/**
|
|
57
|
+
* Section level jump (^^ without parent ^).
|
|
58
|
+
*/
|
|
59
|
+
exports.defectSectionLevelJump = `
|
|
60
|
+
^^ Logging // INVALID: section level jumps without parent
|
|
61
|
+
enabled = true
|
|
62
|
+
`;
|
|
63
|
+
/**
|
|
64
|
+
* Unterminated string literal.
|
|
65
|
+
*/
|
|
66
|
+
exports.defectUnterminatedString = `
|
|
67
|
+
^ App
|
|
68
|
+
name = "Demo
|
|
69
|
+
version = "1.0.0"
|
|
70
|
+
`;
|
|
71
|
+
exports.defectConfigCombo3 = `
|
|
72
|
+
^ App
|
|
73
|
+
name = "Combo defects sample"
|
|
74
|
+
|
|
75
|
+
mode := "dev" // INVALID #1: ':=' is not a valid assignment operator (must be '=')
|
|
76
|
+
|
|
77
|
+
^ 2Database // INVALID #2: section name starts with a digit (must start with A-Z/_ or be backticked)
|
|
78
|
+
host = "localhost"
|
|
79
|
+
|
|
80
|
+
ports = [80, 443, 8080 // INVALID #3: missing closing ']' in array literal
|
|
81
|
+
`;
|
|
82
|
+
exports.defectConfig2Combo3 = `
|
|
83
|
+
^ App
|
|
84
|
+
name = "ComboTest"
|
|
85
|
+
version = 1.0
|
|
86
|
+
|
|
87
|
+
^^ Database
|
|
88
|
+
host = "localhost"
|
|
89
|
+
port = 54_32 // INVALID number format: underscores not allowed inside numbers
|
|
90
|
+
|
|
91
|
+
auth = { user: "admin", pass: "secret" }
|
|
92
|
+
|
|
93
|
+
^^^ Logging
|
|
94
|
+
enabled = maybe // INVALID boolean: only true/false/on/off/yes/no allowed
|
|
95
|
+
|
|
96
|
+
^ Network
|
|
97
|
+
timeout = 30
|
|
98
|
+
|
|
99
|
+
^ Server
|
|
100
|
+
host = "0.0.0.0"
|
|
101
|
+
port := 8080 // INVALID assignment operator: must use "=" not ":="
|
|
102
|
+
|
|
103
|
+
^^ Security
|
|
104
|
+
useTLS = true
|
|
105
|
+
`;
|
|
106
|
+
//# sourceMappingURL=defect-inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defect-inputs.js","sourceRoot":"","sources":["../../../src/dev/quick-test-samples/defect-inputs.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C;;;;;;;;;;GAUG;AAEH;;GAEG;AACU,QAAA,+BAA+B,GAAG;;;;CAI9C,CAAA;AAED;;GAEG;AACU,QAAA,wBAAwB,GAAG;;;;;;;CAOvC,CAAA;AAED;;GAEG;AACU,QAAA,2BAA2B,GAAG;;;;;;;;;CAS1C,CAAA;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAG;;;;CAIjC,CAAA;AAED;;GAEG;AACU,QAAA,sBAAsB,GAAG;;;CAGrC,CAAA;AAED;;GAEG;AACU,QAAA,wBAAwB,GAAG;;;;CAIvC,CAAA;AAEY,QAAA,kBAAkB,GAAG;;;;;;;;;;CAUjC,CAAA;AAEY,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBlC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development-only YINI samples.
|
|
3
|
+
*
|
|
4
|
+
* These inputs are used for quick manual testing during development
|
|
5
|
+
* via src/dev/quick-test-samples/main.ts. They are NOT part of the automated test suite.
|
|
6
|
+
*
|
|
7
|
+
* All real testing belongs in /tests/.
|
|
8
|
+
*/
|
|
9
|
+
export declare const validConfigShort = "\n^ App\nname = 'Hello'\n";
|
|
10
|
+
export declare const validConfigBasic = "\n^ App\nname = \"My Application\"\nversion = 1.0\nfeatures = [\"search\", \"logging\"]\n\n // Nested sub-section under App\n ^^ Database\n host = \"localhost\"\n port = 5432\n";
|
|
11
|
+
export declare const validConfigWithObjects = "\n^ App\n name = \"Demo\"\n version = \"1.0.0\"\n features = [ \"search\", \"dark-mode\" ]\n\n^ Database\n host = \"localhost\"\n port = 5432\n auth = { user: \"admin\", pass: \"secret\" }\n";
|
|
12
|
+
/**
|
|
13
|
+
* Covers booleans, nulls, number formats, and deeper nesting
|
|
14
|
+
*/
|
|
15
|
+
export declare const validConfigAdvanced = "\n^ Server\n enabled = ON\n timeout = 3.5\n retries = 5\n threshold = 1e-3\n fallback = null\n\n ^^ Logging\n level = \"info\"\n output = { file: \"app.log\", rotate: true }\n";
|
|
16
|
+
/**
|
|
17
|
+
* Covers arrays of objects and realistic structure
|
|
18
|
+
*/
|
|
19
|
+
export declare const validConfigComplex = "\n^ App\n services = [\n { name: \"api\", port: 8080 },\n { name: \"web\", port: 3000 },\n { name: \"auth\", port: 9000 }\n ]\n\n^ Security\n roles = [\"admin\", \"user\", \"guest\"]\n enabled = true\n";
|
|
20
|
+
export declare const validConfigComplexBigA = "\n@YINI\n\n// Example A: Corporate SaaS Platform.\n\n^ App\nname = \"Acme Platform\" // Example Platform\ndescription = \"The word \u201CAcme\u201D has been used for over 100 years in technical and business examples.\"\nmeaning = \"It comes from Greek akm\u1E17 (\u1F00\u03BA\u03BC\u03AE), meaning \u201Cthe highest point\u201D or \u201Cbest\u201D.\"\nversion = \"2.3.1\"\ndebug = OFF\nenvironment = \"production\"\nmaintainers = [\"ops@acme.com\", \"dev@acme.com\"]\n\n ^^ Features\n enableSearch = true\n enablePayments = true\n enableAnalytics = false\n experimental = [\"new-ui\", \"streaming-api\"]\n\n ^^ Limits\n maxUsers = 50000\n requestTimeoutMs = 3500\n retryPolicy = { maxRetries: 5, backoff: \"exponential\" }\n\n ^^ Database\n engine = \"postgres\"\n host = \"db.internal.acme.com\"\n port = 5432\n ssl = true\n pool = { min: 5, max: 50 }\n\n ^^^ Credentials\n username = \"app_user\"\n password = \"****\"\n rotateEveryDays = 90\n\n ^^ API\n baseUrl = \"https://api.acme.com\"\n publicEndpoints = [\"/health\", \"/status\"]\n internalEndpoints = [\"/admin\", \"/metrics\"]\n\n ^^^ Auth\n provider = \"oauth2\"\n tokenTTLSeconds = 3600\n scopes = [\"read\", \"write\", \"admin\"]\n\n ^^^^ Clients\n web = { clientId: \"web-123\", redirectUri: \"https://acme.com/callback\" }\n mobile = { clientId: \"mob-456\", redirectUri: \"acme://auth\" }\n\n^ Logging\nlevel = \"info\"\nformat = \"json\"\noutputs = [\"stdout\", \"file\"]\n\n ^^ File\n path = \"/var/log/acme/app.log\"\n maxSizeMB = 100\n rotate = true\n keepFiles = 10\n\n ^^ Metrics\n enabled = true\n endpoint = \"/metrics\"\n sampleRate = 0.25\n\n^ Services\nenabled = true\n\n ^^ Email\n provider = \"smtp\"\n host = \"smtp.acme.com\"\n port = 587\n secure = false\n from = \"no-reply@acme.com\"\n\n ^^^ Credentials\n user = \"mailer\"\n pass = \"mailer-secret\"\n\n ^^ Cache\n type = \"redis\"\n host = \"cache.internal.acme.com\"\n port = 6379\n ttlSeconds = 600\n\n ^^^ Cluster\n nodes = [\n { host: \"cache-1.internal\", port: 6379 },\n { host: \"cache-2.internal\", port: 6379 },\n { host: \"cache-3.internal\", port: 6379 }\n ]\n\n^ Observability\ntracing = true\ntracingProvider = \"opentelemetry\"\ntraceSampleRate = 0.1\n\n ^^ Exporters\n jaeger = { enabled: true, endpoint: \"http://jaeger:14268/api/traces\" }\n prometheus = { enabled: true, endpoint: \"http://prom:9090\" }\n\n^ Security\nallowedIPs = [\"10.0.0.0/8\", \"192.168.0.0/16\"]\nblockedCountries = [\"KP\", \"SD\"]\n\n ^^ Policies\n passwordMinLength = 14\n require2FA = true\n sessionTTLMinutes = 120\n\n ^^^ Lockout\n maxAttempts = 5\n lockoutMinutes = 30\n";
|
|
21
|
+
export declare const validConfigComplexBigB = "\n@YINI\n\n// Example B: High-Security Distributed Control System.\n\n^ App\nname = 'Nebula Control Suite'\ndescription = 'A distributed operations platform for autonomous systems and edge analytics.'\nmeaning = 'Nebula comes from Latin \"nebula\" meaning mist or cloud.'\nversion = '5.0.0-rc.4'\ndebug = ON\nenvironment = 'staging'\nmaintainers = ['infra@nebula.io', 'platform@nebula.io', 'secops@nebula.io']\n\n ^^ Features\n enableSearch = false\n enablePayments = false\n enableAnalytics = true\n experimental = ['vector-engine', 'adaptive-ui', 'ai-routing']\n\n ^^ Limits\n maxUsers = 120000\n requestTimeoutMs = 7200\n retryPolicy = {\n maxRetries: 9,\n backoff: 'fibonacci',\n retryOn: ['timeout', '5xx', 'throttle'],\n schedule: [\n { attempt: 1, delayMs: 80 },\n { attempt: 2, delayMs: 160 },\n { attempt: 3, delayMs: 320 },\n { attempt: 4, delayMs: 640 },\n { attempt: 5, delayMs: 1280 }\n ]\n }\n\n ^^ Database\n engine = 'cockroachdb'\n host = 'cluster.db.nebula.io'\n port = 26257\n ssl = true\n pool = {\n min: 12,\n max: 120,\n warmup: {\n enabled: true,\n strategy: 'aggressive',\n steps: [10, 25, 50, 75, 100],\n healthChecks: [\n { name: 'connectivity', timeoutMs: 300 },\n { name: 'replication', maxLagMs: 200 },\n { name: 'quorum', minNodes: 3 }\n ]\n }\n }\n\n ^^^ Credentials\n username = 'nebula_app'\n password = '****'\n rotateEveryDays = 45\n history = [\n { rotatedAt: '2025-05-10', reason: 'scheduled' },\n { rotatedAt: '2025-03-02', reason: 'key-compromise' },\n { rotatedAt: '2024-12-15', reason: 'policy-change' }\n ]\n\n ^^ API\n baseUrl = 'https://api.nebula.io'\n publicEndpoints = ['/health', '/status', '/version']\n internalEndpoints = ['/admin', '/metrics', '/orchestrator', '/scheduler']\n\n ^^^ Auth\n provider = 'oidc'\n tokenTTLSeconds = 5400\n scopes = ['read', 'write', 'deploy', 'audit']\n\n ^^^^ Clients\n web = {\n clientId: 'nebula-web-prod',\n redirectUri: 'https://nebula.io/auth/callback',\n allowedOrigins: ['https://nebula.io', 'https://console.nebula.io'],\n secrets: [\n { id: 'alpha', value: 'QX7faP9', active: true },\n { id: 'beta', value: 'LM8KdW2', active: true },\n { id: 'legacy', value: 'OLD-KEY-DO-NOT-USE', active: false }\n ]\n }\n\n mobile = {\n clientId: 'nebula-mobile',\n redirectUri: 'nebula://auth',\n platforms: [\n { name: 'ios', minVersion: '15.2', enabled: true },\n { name: 'android', minVersion: '11', enabled: true },\n { name: 'harmonyos', minVersion: '4', enabled: false }\n ],\n refreshPolicy: {\n enabled: true,\n limits: { perHour: 60, perDay: 600 },\n audit: [\n { event: 'refresh', severity: 'info' },\n { event: 'suspicious-location', severity: 'warning' },\n { event: 'credential-stuffing', severity: 'critical' }\n ]\n }\n }\n\n^ Logging\nlevel = 'debug'\nformat = 'ndjson'\noutputs = ['stdout', 'file', 'syslog']\n\n ^^ File\n path = '/srv/log/nebula/nebula.log'\n maxSizeMB = 250\n rotate = true\n keepFiles = 30\n\n ^^ Metrics\n enabled = true\n endpoint = '/internal/metrics'\n sampleRate = 0.75\n\n^ Services\nenabled = true\n\n ^^ Email\n provider = 'ses'\n host = 'email.nebula.io'\n port = 465\n secure = true\n from = 'system@nebula.io'\n\n ^^^ Credentials\n user = 'mailer-nebula'\n pass = 'MAIL-SEC-9921'\n\n ^^ Cache\n type = 'keydb'\n host = 'cache.nebula.internal'\n port = 6380\n ttlSeconds = 1800\n\n ^^^ Cluster\n nodes = [\n { host: 'cache-a.nebula', port: 6380, role: 'primary', zones: ['eu-north-1a'] },\n { host: 'cache-b.nebula', port: 6380, role: 'replica', zones: ['eu-north-1b'] },\n { host: 'cache-c.nebula', port: 6380, role: 'replica', zones: ['eu-north-1c'] },\n { host: 'cache-d.nebula', port: 6380, role: 'observer', zones: ['eu-north-1a'] }\n ]\n\n ^^^ Failover\n strategy = {\n mode: 'predictive',\n thresholds: { errorRate: 0.08, latencyMs: 180 },\n actions: [\n { step: 'drain-traffic', timeoutMs: 1500 },\n { step: 'promote-replica', timeoutMs: 2000 },\n { step: 'resync', propagate: true },\n { step: 'notify', channels: ['pagerduty', 'slack', 'email'] }\n ]\n }\n\n^ Observability\ntracing = true\ntracingProvider = 'tempo'\ntraceSampleRate = 0.35\n\n ^^ Exporters\n jaeger = {\n enabled: false,\n endpoint: 'http://jaeger.internal/api/traces',\n tags: {\n region: 'eu-north',\n environment: 'staging',\n build: { version: '5.0.0-rc.4', commit: 'c8f91d2', dirty: true }\n }\n }\n\n prometheus = {\n enabled: true,\n endpoint: 'http://prometheus.nebula:9090',\n scrapeIntervals: [2, 5, 10, 30],\n retention: { days: 90, maxSeries: 3500000 }\n }\n\n^ Security\nallowedIPs = ['172.16.0.0/12', '100.64.0.0/10']\nblockedCountries = ['KP', 'NG', 'BY']\n\n ^^ Policies\n passwordMinLength = 18\n require2FA = true\n sessionTTLMinutes = 45\n\n ^^^ Lockout\n maxAttempts = 4\n lockoutMinutes = 60\n escalation = {\n enabled: true,\n notify: ['security@nebula.io', 'ciso@nebula.io'],\n rules: [\n { attempts: 3, action: 'captcha' },\n { attempts: 4, action: 'temporary-block', minutes: 120 },\n { attempts: 6, action: 'account-freeze' },\n { attempts: 9, action: 'permanent-block' }\n ]\n }\n";
|