Skip to content

Commit c24e920

Browse files
authored
chore: v1.0 GA readiness — docs accuracy, SDK exports, and version bump (#303)
- Remove ghost eCDN command docs (firewall, rate-limit, cache ocapi-toggle, certificates get) that had no implementation - Remove phantom ecdn:firewall and ecdn:rate-limit oclif topics - Add missing SDK subpath exports: operations/ods, safety, i18n - Add missing TypeDoc entry points (users, roles, bm-roles, sites, orgs, slas, safety, errors, discovery, skills, plugins) - Consolidate all error types in @salesforce/b2c-tooling-sdk/errors - Document slas client open command - Document sandbox delete --wait/--poll-interval/--timeout flags - Update README from Developer Preview to GA - Update AGENTS.md and SDK skill to require TypeDoc updates for new modules - Add major changesets for CLI and SDK v1.0 release
1 parent 058b04c commit c24e920

12 files changed

Lines changed: 134 additions & 176 deletions

File tree

.changeset/ga-release-cli.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@salesforce/b2c-cli': major
3+
---
4+
5+
Release v1.0 — B2C CLI is now Generally Available.

.changeset/ga-release-sdk.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@salesforce/b2c-tooling-sdk': major
3+
---
4+
5+
Release v1.0 — B2C Tooling SDK is now Generally Available. Added `./operations/ods`, `./safety`, and `./i18n` subpath exports. Consolidated all error types in `@salesforce/b2c-tooling-sdk/errors`.

.claude/skills/sdk-module-development/SKILL.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,20 @@ export { Feature } from './newmodule/index.js';
334334
export type { FeatureConfig } from './newmodule/index.js';
335335
```
336336

337-
### 6. Build and test
337+
### 6. Add to TypeDoc entry points
338+
339+
Add the new module's barrel file to `docs/typedoc.json` so API documentation is generated:
340+
341+
```json
342+
{
343+
"entryPoints": [
344+
"...",
345+
"../packages/b2c-tooling-sdk/src/newmodule/index.ts"
346+
]
347+
}
348+
```
349+
350+
### 7. Build and test
338351

339352
```bash
340353
pnpm --filter @salesforce/b2c-tooling-sdk run build
@@ -393,7 +406,7 @@ import { WebDavClient } from '../../src/clients/webdav.js';
393406
3. Create `index.ts` barrel with module-level JSDoc
394407
4. Add export to `package.json` with development condition
395408
5. Optionally add to main `src/index.ts` exports
396-
6. Write tests in `test/` mirroring the src structure
397-
7. Run `pnpm run build` to verify compilation
398-
8. Run `pnpm run test` to verify tests pass
399-
9. Update TypeDoc entry points in `typedoc.json` if needed
409+
6. Add entry point to `docs/typedoc.json` for API doc generation
410+
7. Write tests in `test/` mirroring the src structure
411+
8. Run `pnpm run build` to verify compilation
412+
9. Run `pnpm run test` to verify tests pass

AGENTS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ The header is enforced by eslint via `eslint-plugin-header`. The canonical defin
9292
## Documentation
9393

9494
- Update docs in `./docs/` folder and relevant skills in `./skills/b2c-cli/skills/` when updating or adding CLI commands.
95+
- When adding new SDK modules, update `docs/typedoc.json` entry points to include the new module's barrel file so API docs are generated.
9596

9697
See [documentation skill](./.claude/skills/documentation/SKILL.md) for details on updating user guides, CLI reference, and API docs.
9798

@@ -178,7 +179,7 @@ Changeset guidelines:
178179
- a pull request can have multiple changesets; separate files for separate changes
179180
- Only list directly-changed packages in changeset frontmatter — do not include dependent packages (they get auto-bumped)
180181
- Select the appropriate semver bump: `patch` (bug fixes) or `minor` (new features)
181-
- This is a pre-1.0 preview release, so there are no `major` breaking change bumps yet
182+
- Use `major` for breaking changes that require consumers to update their code
182183
- Good changesets explain:
183184
- WHAT the change is
184185
- WHY the change was made

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![CI](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/actions/workflows/ci.yml/badge.svg)](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/actions/workflows/ci.yml)
44

55
> [!NOTE]
6-
> This project is currently in **Developer Preview**. Not all features are implemented, and the API may change in future releases. Please provide feedback via GitHub issues and Unofficial Slack.
6+
> This project is **Generally Available (GA)**. Please provide feedback via GitHub issues.
77
88
Salesforce B2C Commerce Command Line Tools.
99

docs/cli/ecdn.md

Lines changed: 0 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -107,23 +107,6 @@ At least one purge method must be specified.
107107

108108
---
109109

110-
### b2c ecdn cache ocapi-toggle
111-
112-
Toggle OCAPI caching page rule.
113-
114-
```bash
115-
b2c ecdn cache ocapi-toggle --zone my-zone --enabled
116-
b2c ecdn cache ocapi-toggle --zone my-zone --no-enabled
117-
```
118-
119-
#### Flags
120-
121-
| Flag | Description |
122-
|------|-------------|
123-
| `--enabled` | Enable or disable OCAPI caching |
124-
125-
---
126-
127110
## Certificate Management
128111

129112
### b2c ecdn certificates list
@@ -154,16 +137,6 @@ b2c ecdn certificates add --zone my-zone --hostname www.example.com --certificat
154137

155138
---
156139

157-
### b2c ecdn certificates get
158-
159-
Get certificate details.
160-
161-
```bash
162-
b2c ecdn certificates get --zone my-zone --certificate-id abc123
163-
```
164-
165-
---
166-
167140
### b2c ecdn certificates update
168141

169142
Update a certificate.
@@ -410,142 +383,6 @@ b2c ecdn waf migrate --zone my-zone
410383

411384
---
412385

413-
## Custom Firewall Rules
414-
415-
### b2c ecdn firewall list
416-
417-
List custom firewall rules.
418-
419-
```bash
420-
b2c ecdn firewall list --zone my-zone
421-
```
422-
423-
---
424-
425-
### b2c ecdn firewall create
426-
427-
Create a custom firewall rule.
428-
429-
```bash
430-
b2c ecdn firewall create --zone my-zone --description "Block bad bots" --action block --filter '(cf.client.bot)'
431-
```
432-
433-
#### Flags
434-
435-
| Flag | Description | Required |
436-
|------|-------------|----------|
437-
| `--description` | Rule description | Yes |
438-
| `--action` | Rule action (`block`, `challenge`, `js_challenge`, `managed_challenge`, `allow`, `log`, `bypass`) | Yes |
439-
| `--filter` | Firewall filter expression | Yes |
440-
| `--paused` | Create rule in paused state | No |
441-
| `--priority` | Rule priority | No |
442-
443-
---
444-
445-
### b2c ecdn firewall get
446-
447-
Get a firewall rule.
448-
449-
```bash
450-
b2c ecdn firewall get --zone my-zone --rule-id abc123
451-
```
452-
453-
---
454-
455-
### b2c ecdn firewall update
456-
457-
Update a firewall rule.
458-
459-
```bash
460-
b2c ecdn firewall update --zone my-zone --rule-id abc123 --action challenge
461-
```
462-
463-
---
464-
465-
### b2c ecdn firewall delete
466-
467-
Delete a firewall rule.
468-
469-
```bash
470-
b2c ecdn firewall delete --zone my-zone --rule-id abc123
471-
```
472-
473-
---
474-
475-
### b2c ecdn firewall reorder
476-
477-
Reorder firewall rules.
478-
479-
```bash
480-
b2c ecdn firewall reorder --zone my-zone --rule-ids id1,id2,id3
481-
```
482-
483-
---
484-
485-
## Rate Limiting
486-
487-
### b2c ecdn rate-limit list
488-
489-
List rate limiting rules.
490-
491-
```bash
492-
b2c ecdn rate-limit list --zone my-zone
493-
```
494-
495-
---
496-
497-
### b2c ecdn rate-limit create
498-
499-
Create a rate limiting rule.
500-
501-
```bash
502-
b2c ecdn rate-limit create --zone my-zone --description "API rate limit" --threshold 100 --period 60 --action block --match-url '/api/*'
503-
```
504-
505-
#### Flags
506-
507-
| Flag | Description | Required |
508-
|------|-------------|----------|
509-
| `--description` | Rule description | Yes |
510-
| `--threshold` | Request threshold | Yes |
511-
| `--period` | Period in seconds | Yes |
512-
| `--action` | Action (`block`, `challenge`, `js_challenge`, `managed_challenge`, `log`, `simulate`) | Yes |
513-
| `--match-url` | URL pattern to match | Yes |
514-
| `--match-methods` | HTTP methods (comma-separated) | No |
515-
| `--timeout` | Block timeout in seconds | No |
516-
517-
---
518-
519-
### b2c ecdn rate-limit get
520-
521-
Get a rate limiting rule.
522-
523-
```bash
524-
b2c ecdn rate-limit get --zone my-zone --rule-id abc123
525-
```
526-
527-
---
528-
529-
### b2c ecdn rate-limit update
530-
531-
Update a rate limiting rule.
532-
533-
```bash
534-
b2c ecdn rate-limit update --zone my-zone --rule-id abc123 --threshold 200
535-
```
536-
537-
---
538-
539-
### b2c ecdn rate-limit delete
540-
541-
Delete a rate limiting rule.
542-
543-
```bash
544-
b2c ecdn rate-limit delete --zone my-zone --rule-id abc123
545-
```
546-
547-
---
548-
549386
## Logpush
550387

551388
### b2c ecdn logpush ownership

docs/cli/sandbox.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,9 @@ b2c sandbox delete <SANDBOXID>
409409
| Flag | Description | Default |
410410
|------|-------------|---------|
411411
| `--force`, `-f` | Skip confirmation prompt | `false` |
412+
| `--wait`, `-w` | Wait for the sandbox to be fully deleted before returning | `false` |
413+
| `--poll-interval` | Polling interval in seconds when using `--wait` | `10` |
414+
| `--timeout` | Maximum time to wait in seconds when using `--wait` (0 for no timeout) | `600` |
412415

413416
### Examples
414417

@@ -421,12 +424,16 @@ b2c sandbox delete zzzv-123
421424

422425
# Delete without confirmation
423426
b2c sandbox delete zzzv_123 --force
427+
428+
# Delete and wait for completion
429+
b2c sandbox delete zzzv_123 --force --wait
424430
```
425431

426432
### Notes
427433

428434
- The command will prompt for confirmation unless `--force` is used
429435
- Deleted sandboxes cannot be recovered
436+
- Use `--wait` to block until the sandbox is fully removed
430437

431438
---
432439

docs/cli/slas.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,3 +387,45 @@ b2c slas client delete my-client-id --tenant-id abcd_123 --json
387387

388388
- Deletion is permanent and cannot be undone
389389
- Active sessions using this client will be invalidated
390+
391+
---
392+
393+
## b2c slas client open
394+
395+
Open the SLAS Admin UI for a client in your browser.
396+
397+
### Usage
398+
399+
```bash
400+
b2c slas client open <CLIENTID> --tenant-id <TENANT_ID>
401+
```
402+
403+
### Arguments
404+
405+
| Argument | Description | Required |
406+
|----------|-------------|----------|
407+
| `CLIENTID` | SLAS client ID to open in the admin UI | Yes |
408+
409+
### Flags
410+
411+
| Flag | Environment Variable | Description | Required |
412+
|------|---------------------|-------------|----------|
413+
| `--tenant-id` | `SFCC_TENANT_ID` | SLAS tenant ID (organization ID) | Yes |
414+
| `--short-code` | `SFCC_SHORTCODE` | SCAPI short code | Yes* |
415+
416+
\* `--short-code` can be set via `SFCC_SHORTCODE` environment variable or `short-code` in `dw.json`.
417+
418+
### Examples
419+
420+
```bash
421+
# Open the SLAS Admin UI for a specific client
422+
b2c slas client open my-client-id --tenant-id abcd_123
423+
424+
# With explicit short code
425+
b2c slas client open my-client-id --tenant-id abcd_123 --short-code kv7kzm78
426+
```
427+
428+
### Notes
429+
430+
- Opens the SLAS Admin UI in your default browser
431+
- The URL is also printed to the console if the browser fails to open

docs/typedoc.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,24 @@
66
"../packages/b2c-tooling-sdk/src/clients/index.ts",
77
"../packages/b2c-tooling-sdk/src/instance/index.ts",
88
"../packages/b2c-tooling-sdk/src/logging/index.ts",
9+
"../packages/b2c-tooling-sdk/src/errors/index.ts",
910
"../packages/b2c-tooling-sdk/src/operations/code/index.ts",
1011
"../packages/b2c-tooling-sdk/src/operations/content/index.ts",
1112
"../packages/b2c-tooling-sdk/src/operations/cip/index.ts",
1213
"../packages/b2c-tooling-sdk/src/operations/jobs/index.ts",
1314
"../packages/b2c-tooling-sdk/src/operations/logs/index.ts",
1415
"../packages/b2c-tooling-sdk/src/operations/mrt/index.ts",
1516
"../packages/b2c-tooling-sdk/src/operations/ods/index.ts",
17+
"../packages/b2c-tooling-sdk/src/operations/users/index.ts",
18+
"../packages/b2c-tooling-sdk/src/operations/roles/index.ts",
19+
"../packages/b2c-tooling-sdk/src/operations/bm-roles/index.ts",
20+
"../packages/b2c-tooling-sdk/src/operations/sites/index.ts",
21+
"../packages/b2c-tooling-sdk/src/operations/orgs/index.ts",
22+
"../packages/b2c-tooling-sdk/src/slas/index.ts",
23+
"../packages/b2c-tooling-sdk/src/safety/index.ts",
24+
"../packages/b2c-tooling-sdk/src/discovery/index.ts",
25+
"../packages/b2c-tooling-sdk/src/skills/index.ts",
26+
"../packages/b2c-tooling-sdk/src/plugins/index.ts",
1627
"../packages/b2c-tooling-sdk/src/scaffold/index.ts",
1728
"../packages/b2c-tooling-sdk/src/docs/index.ts",
1829
"../packages/b2c-tooling-sdk/src/schemas/index.ts",

packages/b2c-cli/package.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,6 @@
264264
}
265265
}
266266
},
267-
"firewall": {
268-
"description": "Manage custom firewall rules\n\nDocs: https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/ecdn.html"
269-
},
270-
"rate-limit": {
271-
"description": "Manage rate limiting rules\n\nDocs: https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/ecdn.html"
272-
},
273267
"logpush": {
274268
"description": "Manage log export configuration\n\nDocs: https://salesforcecommercecloud.github.io/b2c-developer-tooling/cli/ecdn.html",
275269
"subtopics": {

0 commit comments

Comments
 (0)