@adobedjangir/commerce-admin-management 0.0.17 → 0.0.19
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/README.md +15 -6
- package/actions/configurations/ext.config.yaml +40 -0
- package/package.json +2 -2
- package/scripts/setup.js +62 -0
package/README.md
CHANGED
|
@@ -51,15 +51,24 @@ and an extension point for host apps to add their own pages and actions.
|
|
|
51
51
|
aio app init my-commerce-admin
|
|
52
52
|
cd my-commerce-admin
|
|
53
53
|
|
|
54
|
-
# 2. Install
|
|
55
|
-
#
|
|
56
|
-
npm install @adobedjangir/commerce-admin-management
|
|
54
|
+
# 2. Install with --legacy-peer-deps on first install.
|
|
55
|
+
# aio's default template pins React 16; this package requires React 18.
|
|
56
|
+
npm install --legacy-peer-deps @adobedjangir/commerce-admin-management
|
|
57
57
|
|
|
58
|
-
# 3.
|
|
59
|
-
|
|
58
|
+
# 3. Run the setup helper. Bumps host deps to React 18 / Spectrum 4 floor,
|
|
59
|
+
# scaffolds web-src/, removes the dx/excshell/1 boilerplate, and
|
|
60
|
+
# generates AIO_DB_REGION + SYSTEM_CONFIG_CRYPT_KEY in .env.
|
|
61
|
+
npx @adobedjangir/commerce-admin-management-setup
|
|
62
|
+
|
|
63
|
+
# 4. Apply the bumped versions
|
|
64
|
+
rm -rf node_modules package-lock.json
|
|
65
|
+
npm install
|
|
66
|
+
|
|
67
|
+
# 5. Fill in any missing .env values (OAUTH_*) — region + crypt key are
|
|
68
|
+
# auto-generated by step 3.
|
|
60
69
|
$EDITOR .env
|
|
61
70
|
|
|
62
|
-
#
|
|
71
|
+
# 6. Deploy. ABDB is auto-provisioned; actions + web assets ship to CDN.
|
|
63
72
|
aio app deploy
|
|
64
73
|
```
|
|
65
74
|
|
|
@@ -36,9 +36,13 @@ runtimeManifest:
|
|
|
36
36
|
LOG_LEVEL: debug
|
|
37
37
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
38
38
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
39
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
39
40
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
41
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
40
42
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
43
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
41
44
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
45
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
42
46
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
43
47
|
annotations:
|
|
44
48
|
require-adobe-auth: false
|
|
@@ -52,9 +56,13 @@ runtimeManifest:
|
|
|
52
56
|
LOG_LEVEL: debug
|
|
53
57
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
54
58
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
59
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
55
60
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
61
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
56
62
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
63
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
57
64
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
65
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
58
66
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
59
67
|
annotations:
|
|
60
68
|
require-adobe-auth: false
|
|
@@ -68,9 +76,13 @@ runtimeManifest:
|
|
|
68
76
|
LOG_LEVEL: debug
|
|
69
77
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
70
78
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
79
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
71
80
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
81
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
72
82
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
83
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
73
84
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
85
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
74
86
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
75
87
|
annotations:
|
|
76
88
|
require-adobe-auth: false
|
|
@@ -83,9 +95,13 @@ runtimeManifest:
|
|
|
83
95
|
inputs:
|
|
84
96
|
LOG_LEVEL: debug
|
|
85
97
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
98
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
86
99
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
100
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
87
101
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
102
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
88
103
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
104
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
89
105
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
90
106
|
annotations:
|
|
91
107
|
require-adobe-auth: false
|
|
@@ -99,9 +115,13 @@ runtimeManifest:
|
|
|
99
115
|
LOG_LEVEL: debug
|
|
100
116
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
101
117
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
118
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
102
119
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
120
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
103
121
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
122
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
104
123
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
124
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
105
125
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
106
126
|
annotations:
|
|
107
127
|
require-adobe-auth: false
|
|
@@ -118,9 +138,13 @@ runtimeManifest:
|
|
|
118
138
|
LOG_LEVEL: debug
|
|
119
139
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
120
140
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
141
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
121
142
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
143
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
122
144
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
145
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
123
146
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
147
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
124
148
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
125
149
|
annotations:
|
|
126
150
|
require-adobe-auth: false
|
|
@@ -134,9 +158,13 @@ runtimeManifest:
|
|
|
134
158
|
LOG_LEVEL: debug
|
|
135
159
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
136
160
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
161
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
137
162
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
163
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
138
164
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
165
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
139
166
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
167
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
140
168
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
141
169
|
annotations:
|
|
142
170
|
require-adobe-auth: false
|
|
@@ -150,9 +178,13 @@ runtimeManifest:
|
|
|
150
178
|
LOG_LEVEL: debug
|
|
151
179
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
152
180
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
181
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
153
182
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
183
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
154
184
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
185
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
155
186
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
187
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
156
188
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
157
189
|
annotations:
|
|
158
190
|
require-adobe-auth: false
|
|
@@ -166,9 +198,13 @@ runtimeManifest:
|
|
|
166
198
|
LOG_LEVEL: debug
|
|
167
199
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
168
200
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
201
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
169
202
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
203
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
170
204
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
205
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
171
206
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
207
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
172
208
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
173
209
|
annotations:
|
|
174
210
|
require-adobe-auth: false
|
|
@@ -182,9 +218,13 @@ runtimeManifest:
|
|
|
182
218
|
LOG_LEVEL: debug
|
|
183
219
|
SYSTEM_CONFIG_CRYPT_KEY: $SYSTEM_CONFIG_CRYPT_KEY
|
|
184
220
|
OAUTH_CLIENT_ID: $OAUTH_CLIENT_ID
|
|
221
|
+
IMS_OAUTH_S2S_CLIENT_ID: $IMS_OAUTH_S2S_CLIENT_ID
|
|
185
222
|
OAUTH_CLIENT_SECRET: $OAUTH_CLIENT_SECRET
|
|
223
|
+
IMS_OAUTH_S2S_CLIENT_SECRET: $IMS_OAUTH_S2S_CLIENT_SECRET
|
|
186
224
|
OAUTH_ORG_ID: $OAUTH_ORG_ID
|
|
225
|
+
IMS_OAUTH_S2S_ORG_ID: $IMS_OAUTH_S2S_ORG_ID
|
|
187
226
|
OAUTH_SCOPES: $OAUTH_SCOPES
|
|
227
|
+
IMS_OAUTH_S2S_SCOPES: $IMS_OAUTH_S2S_SCOPES
|
|
188
228
|
AIO_DB_REGION: $AIO_DB_REGION
|
|
189
229
|
annotations:
|
|
190
230
|
require-adobe-auth: false
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobedjangir/commerce-admin-management",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "Schema-driven system configuration for Adobe Commerce App Builder sync apps. Magento-style scoped config in Adobe App Builder Database (ABDB) with encryption, Commerce REST helpers, and React Admin UI.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Adobe Inc.",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@adobedjangir/commerce-admin-get-config": "^0.0.
|
|
73
|
+
"@adobedjangir/commerce-admin-get-config": "^0.0.2",
|
|
74
74
|
"esbuild": "^0.25.12"
|
|
75
75
|
},
|
|
76
76
|
"repository": {
|
package/scripts/setup.js
CHANGED
|
@@ -655,6 +655,62 @@ function ensureHostDeps (projectRoot) {
|
|
|
655
655
|
*
|
|
656
656
|
* Returns { changed, set: [{key, source}], file }.
|
|
657
657
|
*/
|
|
658
|
+
/**
|
|
659
|
+
* Mirror IMS_OAUTH_S2S_* → OAUTH_* in the host's .env. Newer Adobe Developer
|
|
660
|
+
* Console templates use the IMS_OAUTH_S2S_ prefix; our actions still read
|
|
661
|
+
* the legacy OAUTH_ names. We append aliases so both work — only when
|
|
662
|
+
* IMS_OAUTH_S2S_* is set and OAUTH_* isn't. Idempotent: re-running won't
|
|
663
|
+
* duplicate the block (we identify our own mirror block by its comment).
|
|
664
|
+
*/
|
|
665
|
+
function mirrorImsOauthAliases (projectRoot) {
|
|
666
|
+
const envPath = path.join(projectRoot, '.env')
|
|
667
|
+
if (!fs.existsSync(envPath)) return { changed: false, reason: 'no-env' }
|
|
668
|
+
let env = ''
|
|
669
|
+
try { env = fs.readFileSync(envPath, 'utf8') } catch (_) { return { changed: false, reason: 'unreadable' } }
|
|
670
|
+
|
|
671
|
+
const grab = (k) => {
|
|
672
|
+
const m = env.match(new RegExp('^' + k + '=(.*)$', 'm'))
|
|
673
|
+
return m ? m[1] : ''
|
|
674
|
+
}
|
|
675
|
+
const id = grab('IMS_OAUTH_S2S_CLIENT_ID')
|
|
676
|
+
const sec = grab('IMS_OAUTH_S2S_CLIENT_SECRET')
|
|
677
|
+
const org = grab('IMS_OAUTH_S2S_ORG_ID')
|
|
678
|
+
let scopes = grab('IMS_OAUTH_S2S_SCOPES')
|
|
679
|
+
|
|
680
|
+
if (!id || !sec || !org) return { changed: false, reason: 'ims-vars-missing' }
|
|
681
|
+
|
|
682
|
+
// SCOPES is often a JSON array; the action expects a comma-separated string.
|
|
683
|
+
if (scopes.trim().startsWith('[')) {
|
|
684
|
+
try { scopes = JSON.parse(scopes).join(', ') } catch (_) { /* leave as-is */ }
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
// If OAUTH_* already non-empty, leave the user's values alone.
|
|
688
|
+
const existing = {
|
|
689
|
+
OAUTH_CLIENT_ID: grab('OAUTH_CLIENT_ID'),
|
|
690
|
+
OAUTH_CLIENT_SECRET: grab('OAUTH_CLIENT_SECRET'),
|
|
691
|
+
OAUTH_ORG_ID: grab('OAUTH_ORG_ID'),
|
|
692
|
+
OAUTH_SCOPES: grab('OAUTH_SCOPES')
|
|
693
|
+
}
|
|
694
|
+
const anyMissing = Object.values(existing).some((v) => !v)
|
|
695
|
+
if (!anyMissing) return { changed: false, reason: 'already-aliased' }
|
|
696
|
+
|
|
697
|
+
// Strip any previously-mirrored block so re-runs don't accumulate.
|
|
698
|
+
env = env.replace(/\n# Aliases mirrored from IMS_OAUTH_S2S_\*[\s\S]*?(?=\n[A-Z_]+=|\n*$)/g, '')
|
|
699
|
+
|
|
700
|
+
const block = [
|
|
701
|
+
'',
|
|
702
|
+
'# Aliases mirrored from IMS_OAUTH_S2S_* — required by the commerce-admin-management actions.',
|
|
703
|
+
`OAUTH_CLIENT_ID=${id}`,
|
|
704
|
+
`OAUTH_CLIENT_SECRET=${sec}`,
|
|
705
|
+
`OAUTH_ORG_ID=${org}`,
|
|
706
|
+
`OAUTH_SCOPES=${scopes}`,
|
|
707
|
+
''
|
|
708
|
+
].join('\n')
|
|
709
|
+
|
|
710
|
+
fs.writeFileSync(envPath, env + block, 'utf8')
|
|
711
|
+
return { changed: true }
|
|
712
|
+
}
|
|
713
|
+
|
|
658
714
|
function ensureEnvDefaults (projectRoot) {
|
|
659
715
|
const envPath = path.join(projectRoot, '.env')
|
|
660
716
|
let lines = []
|
|
@@ -782,6 +838,12 @@ function main () {
|
|
|
782
838
|
console.log(`[@adobedjangir/commerce-admin-management] .env ${s.source}: ${s.key}`)
|
|
783
839
|
}
|
|
784
840
|
}
|
|
841
|
+
// Newer Adobe Developer Console templates use IMS_OAUTH_S2S_* prefix in
|
|
842
|
+
// .env. Our actions still read OAUTH_*. Mirror automatically so both work.
|
|
843
|
+
const mirror = mirrorImsOauthAliases(projectRoot)
|
|
844
|
+
if (mirror.changed) {
|
|
845
|
+
console.log('[@adobedjangir/commerce-admin-management] .env mirrored IMS_OAUTH_S2S_* → OAUTH_*')
|
|
846
|
+
}
|
|
785
847
|
|
|
786
848
|
// Bump host package.json so React-18 + Spectrum-4 peers are satisfied
|
|
787
849
|
// without the consumer running a long `npm install --save react@^18 ...`
|