@adobe/helix-config-storage 2.12.2 → 2.13.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.
- package/CHANGELOG.md +21 -0
- package/package.json +7 -7
- package/src/schemas/cdn-prod-akamai.schema.json +1 -1
- package/src/schemas/cdn-prod-cloudflare.schema.json +1 -1
- package/src/schemas/cdn-prod-cloudfront.schema.json +1 -1
- package/src/schemas/cdn-prod-fastly.schema.json +1 -1
- package/src/schemas/cdn-prod-managed.schema.json +1 -1
- package/src/schemas/cdn.schema.json +4 -4
- package/validate-json-schemas.sh +1 -1
- package/.claude/settings.local.json +0 -7
- package/.env +0 -0
- package/CLAUDE.md +0 -47
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
## [2.13.1](https://github.com/adobe/helix-config-storage/compare/v2.13.0...v2.13.1) (2026-03-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **deps:** update external fixes ([#237](https://github.com/adobe/helix-config-storage/issues/237)) ([0587db8](https://github.com/adobe/helix-config-storage/commit/0587db878cae451273aad0fb2c91424f88731b84))
|
|
7
|
+
|
|
8
|
+
# [2.13.0](https://github.com/adobe/helix-config-storage/compare/v2.12.1...v2.13.0) (2026-03-24)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **deps:** update adobe fixes ([#238](https://github.com/adobe/helix-config-storage/issues/238)) ([26e0272](https://github.com/adobe/helix-config-storage/commit/26e027295815a110d75f3a7f4156bc2327ef1f18))
|
|
14
|
+
* no property path duplication in error messages ([#236](https://github.com/adobe/helix-config-storage/issues/236)) ([ef03daa](https://github.com/adobe/helix-config-storage/commit/ef03daaf6da6b72a815ed23096f288d36dbdf589))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* add ajv-errors with human-readable error messages for CDN not-patterns ([#234](https://github.com/adobe/helix-config-storage/issues/234)) ([e8ecf44](https://github.com/adobe/helix-config-storage/commit/e8ecf446aac87d420d2f125636ea7eedb04ccca1))
|
|
20
|
+
* allow empty string as prod host in cdn-prod schemas ([#235](https://github.com/adobe/helix-config-storage/issues/235)) ([9772b7a](https://github.com/adobe/helix-config-storage/commit/9772b7ac1556b49325ce7a64fcb967705582aba9))
|
|
21
|
+
|
|
1
22
|
## [2.12.1](https://github.com/adobe/helix-config-storage/compare/v2.12.0...v2.12.1) (2026-03-13)
|
|
2
23
|
|
|
3
24
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/helix-config-storage",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"description": "Helix Config Storage",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "src/index.d.ts",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"reporter-options": "configFile=.mocha-multi.json"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@adobe/eslint-config-helix": "3.0.
|
|
40
|
-
"@eslint/config-helpers": "0.5.
|
|
39
|
+
"@adobe/eslint-config-helix": "3.0.23",
|
|
40
|
+
"@eslint/config-helpers": "0.5.3",
|
|
41
41
|
"@semantic-release/changelog": "6.0.3",
|
|
42
42
|
"@semantic-release/git": "10.0.1",
|
|
43
43
|
"@semantic-release/npm": "13.1.5",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"husky": "9.1.7",
|
|
48
48
|
"json-schema-to-typescript": "15.0.4",
|
|
49
49
|
"junit-report-builder": "5.1.1",
|
|
50
|
-
"lint-staged": "16.3.
|
|
50
|
+
"lint-staged": "16.3.3",
|
|
51
51
|
"mocha": "11.7.5",
|
|
52
52
|
"mocha-multi-reporters": "1.5.1",
|
|
53
53
|
"mocha-suppress-logs": "0.6.0",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"@adobe/fetch": "^4.2.0",
|
|
64
64
|
"@adobe/helix-shared-config": "^11.1.4",
|
|
65
65
|
"@adobe/helix-shared-git": "^3.0.18",
|
|
66
|
-
"@adobe/helix-shared-process-queue": "3.1.
|
|
66
|
+
"@adobe/helix-shared-process-queue": "3.1.6",
|
|
67
67
|
"@adobe/helix-shared-storage": "^1.4.0",
|
|
68
68
|
"@adobe/helix-shared-string": "^2.1.0",
|
|
69
69
|
"@adobe/helix-shared-utils": "^3.0.2",
|
|
70
70
|
"ajv": "8.18.0",
|
|
71
|
-
"ajv-errors": "
|
|
71
|
+
"ajv-errors": "3.0.0",
|
|
72
72
|
"ajv-formats": "3.0.1",
|
|
73
|
-
"jose": "6.1
|
|
73
|
+
"jose": "6.2.1"
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
|
|
35
35
|
},
|
|
36
36
|
"errorMessage": {
|
|
37
|
-
"not": "AEM endpoints
|
|
37
|
+
"not": "AEM endpoints not allowed"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
},
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
|
|
59
59
|
},
|
|
60
60
|
"errorMessage": {
|
|
61
|
-
"not": "AEM endpoints
|
|
61
|
+
"not": "AEM endpoints not allowed"
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
},
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
|
|
81
81
|
},
|
|
82
82
|
"errorMessage": {
|
|
83
|
-
"not": "AEM endpoints
|
|
83
|
+
"not": "AEM endpoints not allowed"
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
},
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
|
|
103
103
|
},
|
|
104
104
|
"errorMessage": {
|
|
105
|
-
"not": "AEM endpoints
|
|
105
|
+
"not": "AEM endpoints not allowed"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
},
|
package/validate-json-schemas.sh
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# the need the proper file order to compile the schemas.
|
|
2
|
-
npx ajv-cli --spec=draft2019 -c ajv-formats compile \
|
|
2
|
+
npx ajv-cli --all-errors --spec=draft2019 -c ajv-formats -c ajv-errors compile \
|
|
3
3
|
-s src/schemas/common.schema.json \
|
|
4
4
|
-s src/schemas/access-admin.schema.json \
|
|
5
5
|
-s src/schemas/access-site.schema.json \
|
package/.env
DELETED
|
File without changes
|
package/CLAUDE.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Commands
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Run all tests with coverage
|
|
9
|
-
npm test
|
|
10
|
-
|
|
11
|
-
# Run a single test file
|
|
12
|
-
npx mocha --spec 'test/config-store.test.js'
|
|
13
|
-
|
|
14
|
-
# Lint (ESLint + JSON schema validation)
|
|
15
|
-
npm run lint
|
|
16
|
-
|
|
17
|
-
# Validate JSON schemas only
|
|
18
|
-
./validate-json-schemas.sh
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Architecture
|
|
22
|
-
|
|
23
|
-
This is a Node.js library for managing configuration storage for Adobe Helix (Edge Delivery Services) projects. It provides CRUD operations for org, site, and profile configuration objects stored in a content bus via `@adobe/helix-shared-storage`.
|
|
24
|
-
|
|
25
|
-
### Core Concepts
|
|
26
|
-
|
|
27
|
-
- **Config types**: `org`, `sites`, `profiles` — stored at `/orgs/{org}/{type}/{name}.json`
|
|
28
|
-
- **Fragments**: Support for updating nested subpaths (e.g., `/cdn/prod`, `/secrets/{id}`) via parameterized deep-path operations
|
|
29
|
-
- **Profile merging**: Site configs can inherit from profiles; `config-merge.js` handles atomic/object/array union merge strategies
|
|
30
|
-
- **Versioning**: Auto-incrementing version history stored alongside each config
|
|
31
|
-
- **Access control gates**: `withAllowAdmin(bool)` and `withAllowOps(bool)` on the store control what callers may modify
|
|
32
|
-
|
|
33
|
-
### Key Files
|
|
34
|
-
|
|
35
|
-
- `src/config-store.js` — Main `ConfigStore` class with create/read/update/remove/validate methods
|
|
36
|
-
- `src/fragment.js` — Fragment path parsing and application for nested updates
|
|
37
|
-
- `src/config-merge.js` — Profile/site merge logic (atomic vs. deep-merge vs. array-union per property)
|
|
38
|
-
- `src/config-validator.js` — AJV-based schema validation across 40+ JSON schemas in `src/schemas/`
|
|
39
|
-
- `src/config-versioning.js` — Version history management
|
|
40
|
-
- `src/utils.js` — Helpers for users, tokens, secrets, content/code source detection
|
|
41
|
-
|
|
42
|
-
### Patterns
|
|
43
|
-
|
|
44
|
-
- All operations accept a `ctx` object providing storage access (`HelixStorage.fromContext(ctx).configBus()`) and logging (`ctx.log`)
|
|
45
|
-
- Sensitive fields (secrets, tokens) are redacted on read — only metadata is returned
|
|
46
|
-
- Schema validation uses AJV with coercion and defaults enabled
|
|
47
|
-
- The `Fragment` class handles parameterized sub-paths; arrays and objects within configs use different merge strategies
|