Skip to content

Commit 0458b50

Browse files
Merge pull request #2373 from contentstack/enh/dx-3902-beta-refactor-endpoints-integrations
Enh/dx 3902 beta refactor endpoints integrations
2 parents 9bb4dc0 + 391259c commit 0458b50

10 files changed

Lines changed: 363 additions & 443 deletions

File tree

.talismanrc

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11

22
fileignoreconfig:
33
- filename: package-lock.json
4-
checksum: 1837e7d9de21b99975ab38b2de493dbd69347aa2e2ba06bc5e8a5a555a0834f1
4+
checksum: 24f0daa61f0070243524a33db67a024dd924a024235acc642a24b9abf5e1edb9
55
- filename: pnpm-lock.yaml
6-
checksum: 902643ce426736c17c037e3ca90f88fada78b43c37a890d35411f5e5bca07d95
7-
- filename: packages/contentstack/README.md
8-
checksum: 3e95bfa46ef9262c558b8ac12afc3be9637c9fabde9214cfc9ff26d8aea88fcc
9-
version: ""
6+
checksum: 26e8c51a4797a4a601a168cbe8167e525ade2cab5e4b8fa2400d0896bc253da8
7+
version: '1.0'

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
Please refer to the Contentstack Command-line Interface release notes [here](https://www.contentstack.com/docs/developers/cli/cli-changelog).
44

5+
6+
7+
8+
#### Date: Feb-09-2025
9+
## cli
10+
- Refactor Endpoints Integration using Utils SDK in cli-cm-config v1.9.0
11+
## cli beta
12+
- Updated @contentstack/cli-cm-export from ~2.0.0-beta.6 to ~2.0.0-beta.7
13+
- Updated @contentstack/cli-cm-clone from ~2.0.0-beta.7 to ~2.0.0-beta.8
14+
515
## @contentstack/cli-cm-clone
616
### Version: 1.8.2
717
#### Date: June-30-2025

package-lock.json

Lines changed: 145 additions & 193 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/contentstack-bulk-publish/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"name": "@contentstack/cli-cm-bulk-publish",
33
"description": "Contentstack CLI plugin for bulk publish actions",
4-
"version": "1.10.6",
4+
"version": "1.10.7",
55
"author": "Contentstack",
66
"bugs": "https://github.com/contentstack/cli/issues",
77
"dependencies": {
88
"@contentstack/cli-command": "~1.7.2",
9-
"@contentstack/cli-config": "~1.18.0",
9+
"@contentstack/cli-config": "~1.19.0",
1010
"@contentstack/cli-utilities": "~1.17.2",
1111
"@oclif/core": "^4.3.0",
1212
"@oclif/plugin-help": "^6.2.28",

packages/contentstack-config/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@contentstack/cli-config",
33
"description": "Contentstack CLI plugin for configuration",
4-
"version": "1.18.0",
4+
"version": "1.19.0",
55
"author": "Contentstack",
66
"scripts": {
77
"build": "npm run clean && npm run compile",
@@ -23,6 +23,7 @@
2323
"dependencies": {
2424
"@contentstack/cli-command": "~1.7.2",
2525
"@contentstack/cli-utilities": "~1.17.2",
26+
"@contentstack/utils": "~1.7.0",
2627
"@oclif/core": "^4.3.0",
2728
"@oclif/plugin-help": "^6.2.28",
2829
"lodash": "^4.17.21"
@@ -80,4 +81,4 @@
8081
}
8182
},
8283
"repository": "contentstack/cli"
83-
}
84+
}

packages/contentstack-config/src/interfaces/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ export interface SetRateLimitConfig {
3939
default?: boolean;
4040
host?: string;
4141
}
42+
43+
export interface RegionsMap {
44+
[key: string]: Region;
45+
}

packages/contentstack-config/src/utils/region-handler.ts

Lines changed: 63 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { configHandler } from '@contentstack/cli-utilities';
2+
import { getContentstackEndpoint } from '@contentstack/utils';
3+
import { Region, RegionsMap } from '../interfaces';
24

35
function validURL(str) {
46
const pattern = new RegExp(
@@ -15,109 +17,67 @@ function validURL(str) {
1517
return pattern.test(str);
1618
}
1719

18-
// Available region list
19-
const regions = {
20-
NA: {
21-
name: 'NA',
22-
cma: 'https://api.contentstack.io',
23-
cda: 'https://cdn.contentstack.io',
24-
uiHost: 'https://app.contentstack.com',
25-
developerHubUrl: 'https://developerhub-api.contentstack.com',
26-
launchHubUrl: 'https://launch-api.contentstack.com',
27-
personalizeUrl: 'https://personalize-api.contentstack.com',
28-
composableStudioUrl: 'https://composable-studio-api.contentstack.com',
29-
},
30-
'AWS-NA': {
31-
name: 'AWS-NA',
32-
cma: 'https://api.contentstack.io',
33-
cda: 'https://cdn.contentstack.io',
34-
uiHost: 'https://app.contentstack.com',
35-
developerHubUrl: 'https://developerhub-api.contentstack.com',
36-
launchHubUrl: 'https://launch-api.contentstack.com',
37-
personalizeUrl: 'https://personalize-api.contentstack.com',
38-
composableStudioUrl: 'https://composable-studio-api.contentstack.com',
39-
},
40-
EU: {
41-
name: 'EU',
42-
cma: 'https://eu-api.contentstack.com',
43-
cda: 'https://eu-cdn.contentstack.com',
44-
uiHost: 'https://eu-app.contentstack.com',
45-
developerHubUrl: 'https://eu-developerhub-api.contentstack.com',
46-
launchHubUrl: 'https://eu-launch-api.contentstack.com',
47-
personalizeUrl: 'https://eu-personalize-api.contentstack.com',
48-
composableStudioUrl: 'https://eu-composable-studio-api.contentstack.com',
49-
},
50-
'AWS-EU': {
51-
name: 'AWS-EU',
52-
cma: 'https://eu-api.contentstack.com',
53-
cda: 'https://eu-cdn.contentstack.com',
54-
uiHost: 'https://eu-app.contentstack.com',
55-
developerHubUrl: 'https://eu-developerhub-api.contentstack.com',
56-
launchHubUrl: 'https://eu-launch-api.contentstack.com',
57-
personalizeUrl: 'https://eu-personalize-api.contentstack.com',
58-
composableStudioUrl: 'https://eu-composable-studio-api.contentstack.com',
59-
},
60-
AU: {
61-
name: 'AU',
62-
cma: 'https://au-api.contentstack.com',
63-
cda: 'https://au-cdn.contentstack.com',
64-
uiHost: 'https://au-app.contentstack.com',
65-
developerHubUrl: 'https://au-developerhub-api.contentstack.com',
66-
launchHubUrl: 'https://au-launch-api.contentstack.com',
67-
personalizeUrl: 'https://au-personalize-api.contentstack.com',
68-
composableStudioUrl: 'https://au-composable-studio-api.contentstack.com',
69-
},
70-
'AWS-AU': {
71-
name: 'AWS-AU',
72-
cma: 'https://au-api.contentstack.com',
73-
cda: 'https://au-cdn.contentstack.com',
74-
uiHost: 'https://au-app.contentstack.com',
75-
developerHubUrl: 'https://au-developerhub-api.contentstack.com',
76-
launchHubUrl: 'https://au-launch-api.contentstack.com',
77-
personalizeUrl: 'https://au-personalize-api.contentstack.com',
78-
composableStudioUrl: 'https://au-composable-studio-api.contentstack.com',
79-
},
80-
'AZURE-NA': {
81-
name: 'AZURE-NA',
82-
cma: 'https://azure-na-api.contentstack.com',
83-
cda: 'https://azure-na-cdn.contentstack.com',
84-
uiHost: 'https://azure-na-app.contentstack.com',
85-
developerHubUrl: 'https://azure-na-developerhub-api.contentstack.com',
86-
launchHubUrl: 'https://azure-na-launch-api.contentstack.com',
87-
personalizeUrl: 'https://azure-na-personalize-api.contentstack.com',
88-
composableStudioUrl: 'https://azure-na-composable-studio-api.contentstack.com',
89-
},
90-
'AZURE-EU': {
91-
name: 'AZURE-EU',
92-
cma: 'https://azure-eu-api.contentstack.com',
93-
cda: 'https://azure-eu-cdn.contentstack.com',
94-
uiHost: 'https://azure-eu-app.contentstack.com',
95-
developerHubUrl: 'https://azure-eu-developerhub-api.contentstack.com',
96-
launchHubUrl: 'https://azure-eu-launch-api.contentstack.com',
97-
personalizeUrl: 'https://azure-eu-personalize-api.contentstack.com',
98-
composableStudioUrl: 'https://azure-eu-composable-studio-api.contentstack.com',
99-
},
100-
'GCP-NA': {
101-
name: 'GCP-NA',
102-
cma: 'https://gcp-na-api.contentstack.com',
103-
cda: 'https://gcp-na-cdn.contentstack.com',
104-
uiHost: 'https://gcp-na-app.contentstack.com',
105-
developerHubUrl: 'https://gcp-na-developerhub-api.contentstack.com',
106-
launchHubUrl: 'https://gcp-na-launch-api.contentstack.com',
107-
personalizeUrl: 'https://gcp-na-personalize-api.contentstack.com',
108-
composableStudioUrl: 'https://gcp-na-composable-studio-api.contentstack.com',
109-
},
110-
'GCP-EU': {
111-
name: 'GCP-EU',
112-
cma: 'https://gcp-eu-api.contentstack.com',
113-
cda: 'https://gcp-eu-cdn.contentstack.com',
114-
uiHost: 'https://gcp-eu-app.contentstack.com',
115-
developerHubUrl: 'https://gcp-eu-developerhub-api.contentstack.com',
116-
launchHubUrl: 'https://gcp-eu-launch-api.contentstack.com',
117-
personalizeUrl: 'https://gcp-eu-personalize-api.contentstack.com',
118-
composableStudioUrl: 'https://gcp-eu-composable-studio-api.contentstack.com',
119-
},
120-
};
20+
/**
21+
* Helper function to build region object from @contentstack/utils
22+
* @param {string} regionKey - Region identifier
23+
* @returns {object} Region object with all necessary URLs
24+
*/
25+
function getRegionObject(regionKey: string): Region {
26+
try {
27+
// getContentstackEndpoint handles all aliases defined in regions.json
28+
const endpoints = getContentstackEndpoint(regionKey) as any;
29+
30+
if (typeof endpoints === 'string') {
31+
throw new Error('Invalid endpoint response');
32+
}
33+
34+
return {
35+
name: regionKey,
36+
cma: endpoints.contentManagement,
37+
cda: endpoints.contentDelivery,
38+
uiHost: endpoints.application,
39+
developerHubUrl: endpoints.developerHub,
40+
launchHubUrl: endpoints.launch,
41+
personalizeUrl: endpoints.personalizeManagement,
42+
composableStudioUrl: endpoints.composableStudio,
43+
};
44+
} catch (error) {
45+
return null;
46+
}
47+
}
48+
49+
/**
50+
* Get all available regions dynamically
51+
* This creates a regions object similar to the old hardcoded one but using @contentstack/utils
52+
*/
53+
function getAvailableRegions() {
54+
const regionKeys = [
55+
'NA',
56+
'AWS-NA',
57+
'EU',
58+
'AWS-EU',
59+
'AU',
60+
'AWS-AU',
61+
'AZURE-NA',
62+
'AZURE-EU',
63+
'GCP-NA',
64+
'GCP-EU',
65+
];
66+
67+
const regions: RegionsMap = {};
68+
69+
for (const key of regionKeys) {
70+
const regionObj = getRegionObject(key);
71+
if (regionObj) {
72+
regions[key] = regionObj;
73+
}
74+
}
75+
76+
return regions;
77+
}
78+
79+
// Available region list - now dynamically generated
80+
const regions = getAvailableRegions();
12181

12282
class UserConfig {
12383
/**

packages/contentstack-export/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"devDependencies": {
2424
"@contentstack/cli-auth": "~2.0.0-beta.4",
25-
"@contentstack/cli-config": "~1.18.0",
25+
"@contentstack/cli-config": "~1.19.0",
2626
"@contentstack/cli-dev-dependencies": "~1.3.1",
2727
"@oclif/plugin-help": "^6.2.28",
2828
"@oclif/test": "^4.1.13",

packages/contentstack/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@
3434
"@contentstack/cli-cm-import-setup": "~2.0.0-beta.3",
3535
"@contentstack/cli-cm-seed": "~2.0.0-beta.6",
3636
"@contentstack/cli-command": "~1.7.2",
37-
"@contentstack/cli-config": "~1.18.0",
37+
"@contentstack/cli-config": "~1.19.0",
3838
"@contentstack/cli-launch": "1.9.3",
3939
"@contentstack/cli-migration": "~2.0.0-beta.3",
4040
"@contentstack/cli-utilities": "~1.17.2",
4141
"@contentstack/cli-variants": "~2.0.0-beta.4",
4242
"@contentstack/management": "~1.27.3",
43+
"@contentstack/utils": "~1.7.0",
4344
"@oclif/core": "^4.3.0",
4445
"@oclif/plugin-help": "^6.2.28",
4546
"@oclif/plugin-not-found": "^3.2.53",

0 commit comments

Comments
 (0)