@adobe/helix-config-storage 2.12.2 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [2.13.0](https://github.com/adobe/helix-config-storage/compare/v2.12.1...v2.13.0) (2026-03-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **deps:** update adobe fixes ([#238](https://github.com/adobe/helix-config-storage/issues/238)) ([26e0272](https://github.com/adobe/helix-config-storage/commit/26e027295815a110d75f3a7f4156bc2327ef1f18))
7
+ * 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))
8
+
9
+
10
+ ### Features
11
+
12
+ * 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))
13
+ * 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))
14
+
1
15
  ## [2.12.1](https://github.com/adobe/helix-config-storage/compare/v2.12.0...v2.12.1) (2026-03-13)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-config-storage",
3
- "version": "2.12.2",
3
+ "version": "2.13.0",
4
4
  "description": "Helix Config Storage",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "reporter-options": "configFile=.mocha-multi.json"
37
37
  },
38
38
  "devDependencies": {
39
- "@adobe/eslint-config-helix": "3.0.22",
39
+ "@adobe/eslint-config-helix": "3.0.23",
40
40
  "@eslint/config-helpers": "0.5.2",
41
41
  "@semantic-release/changelog": "6.0.3",
42
42
  "@semantic-release/git": "10.0.1",
@@ -63,12 +63,12 @@
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.5",
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": "^3.0.0",
71
+ "ajv-errors": "3.0.0",
72
72
  "ajv-formats": "3.0.1",
73
73
  "jose": "6.1.3"
74
74
  }
@@ -17,7 +17,7 @@
17
17
  "pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
18
18
  },
19
19
  "errorMessage": {
20
- "not": "AEM endpoints are not allowed as /cdn/prod/host"
20
+ "not": "AEM endpoints not allowed"
21
21
  }
22
22
  },
23
23
  "route": {
@@ -17,7 +17,7 @@
17
17
  "pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
18
18
  },
19
19
  "errorMessage": {
20
- "not": "AEM endpoints are not allowed as /cdn/prod/host"
20
+ "not": "AEM endpoints not allowed"
21
21
  }
22
22
  },
23
23
  "route": {
@@ -17,7 +17,7 @@
17
17
  "pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
18
18
  },
19
19
  "errorMessage": {
20
- "not": "AEM endpoints are not allowed as /cdn/prod/host"
20
+ "not": "AEM endpoints not allowed"
21
21
  }
22
22
  },
23
23
  "route": {
@@ -18,7 +18,7 @@
18
18
  "pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
19
19
  },
20
20
  "errorMessage": {
21
- "not": "AEM endpoints are not allowed as /cdn/prod/host"
21
+ "not": "AEM endpoints not allowed"
22
22
  }
23
23
  },
24
24
  "route": {
@@ -17,7 +17,7 @@
17
17
  "pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
18
18
  },
19
19
  "errorMessage": {
20
- "not": "AEM endpoints are not allowed as /cdn/prod/host"
20
+ "not": "AEM endpoints not allowed"
21
21
  }
22
22
  },
23
23
  "envId": {
@@ -34,7 +34,7 @@
34
34
  "pattern": ".*--.*--.*\\.aem\\.(live|page|reviews|network)$"
35
35
  },
36
36
  "errorMessage": {
37
- "not": "AEM endpoints are not allowed as /cdn/prod/host"
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 are not allowed as /cdn/live/host"
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 are not allowed as /cdn/preview/host"
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 are not allowed as /cdn/review/host"
105
+ "not": "AEM endpoints not allowed"
106
106
  }
107
107
  }
108
108
  },
@@ -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 \
@@ -1,7 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npx mocha:*)"
5
- ]
6
- }
7
- }
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