ssot-cli 0.1.0__tar.gz → 0.1.2__tar.gz
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.
- ssot_cli-0.1.2/PKG-INFO +828 -0
- ssot_cli-0.1.2/README.md +801 -0
- ssot_cli-0.1.2/pyproject.toml +47 -0
- ssot_cli-0.1.2/src/ssot_cli/__init__.py +5 -0
- ssot_cli-0.1.2/src/ssot_cli/adr_cmd.py +143 -0
- ssot_cli-0.1.2/src/ssot_cli/boundary_cmd.py +135 -0
- ssot_cli-0.1.2/src/ssot_cli/claim_cmd.py +159 -0
- ssot_cli-0.1.2/src/ssot_cli/common.py +37 -0
- ssot_cli-0.1.2/src/ssot_cli/evidence_cmd.py +142 -0
- ssot_cli-0.1.2/src/ssot_cli/feature_cmd.py +202 -0
- ssot_cli-0.1.2/src/ssot_cli/graph_cmd.py +20 -0
- ssot_cli-0.1.2/src/ssot_cli/init_cmd.py +25 -0
- ssot_cli-0.1.2/src/ssot_cli/issue_cmd.py +184 -0
- ssot_cli-0.1.2/src/ssot_cli/main.py +89 -0
- ssot_cli-0.1.2/src/ssot_cli/profile_cmd.py +159 -0
- ssot_cli-0.1.2/src/ssot_cli/registry_cmd.py +20 -0
- ssot_cli-0.1.2/src/ssot_cli/release_cmd.py +167 -0
- ssot_cli-0.1.2/src/ssot_cli/risk_cmd.py +173 -0
- ssot_cli-0.1.2/src/ssot_cli/spec_cmd.py +146 -0
- ssot_cli-0.1.2/src/ssot_cli/test_cmd.py +125 -0
- ssot_cli-0.1.2/src/ssot_cli/upgrade_cmd.py +23 -0
- ssot_cli-0.1.2/src/ssot_cli/validate_cmd.py +25 -0
- ssot_cli-0.1.2/src/ssot_cli.egg-info/PKG-INFO +828 -0
- ssot_cli-0.1.2/src/ssot_cli.egg-info/SOURCES.txt +27 -0
- ssot_cli-0.1.2/src/ssot_cli.egg-info/entry_points.txt +4 -0
- ssot_cli-0.1.2/src/ssot_cli.egg-info/requires.txt +5 -0
- ssot_cli-0.1.0/PKG-INFO +0 -16
- ssot_cli-0.1.0/README.md +0 -3
- ssot_cli-0.1.0/pyproject.toml +0 -29
- ssot_cli-0.1.0/src/ssot_cli/__init__.py +0 -1
- ssot_cli-0.1.0/src/ssot_cli.egg-info/PKG-INFO +0 -16
- ssot_cli-0.1.0/src/ssot_cli.egg-info/SOURCES.txt +0 -9
- ssot_cli-0.1.0/src/ssot_cli.egg-info/entry_points.txt +0 -2
- ssot_cli-0.1.0/src/ssot_cli.egg-info/requires.txt +0 -1
- {ssot_cli-0.1.0 → ssot_cli-0.1.2}/setup.cfg +0 -0
- {ssot_cli-0.1.0 → ssot_cli-0.1.2}/src/ssot_cli.egg-info/dependency_links.txt +0 -0
- {ssot_cli-0.1.0 → ssot_cli-0.1.2}/src/ssot_cli.egg-info/top_level.txt +0 -0
ssot_cli-0.1.2/PKG-INFO
ADDED
|
@@ -0,0 +1,828 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ssot-cli
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Primary CLI distribution for ssot-registry.
|
|
5
|
+
Author-email: Jacob Stewart <jacob@swarmauri.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/groupsum/ssot-registry
|
|
8
|
+
Project-URL: Repository, https://github.com/groupsum/ssot-registry
|
|
9
|
+
Project-URL: Issues, https://github.com/groupsum/ssot-registry/issues
|
|
10
|
+
Keywords: ssot,cli,registry
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Utilities
|
|
22
|
+
Requires-Python: <3.14,>=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
Requires-Dist: ssot-contracts<0.3.0,>=0.2.6
|
|
25
|
+
Requires-Dist: ssot-registry<0.3.0,>=0.2.6
|
|
26
|
+
Requires-Dist: tomli>=2.0.1; python_version < "3.11"
|
|
27
|
+
|
|
28
|
+
<div align="center">
|
|
29
|
+
<h1>🔷 ssot-cli</h1>
|
|
30
|
+
<p><strong>Primary command-line distribution for SSOT workflows.</strong></p>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div align="center">
|
|
34
|
+
<a href="https://pypi.org/project/ssot-cli/"><img src="https://img.shields.io/pypi/v/ssot-cli?label=PyPI%20version" alt="PyPI version" /></a>
|
|
35
|
+
<a href="https://pypi.org/project/ssot-cli/"><img src="https://img.shields.io/pypi/pyversions/ssot-cli?label=Python" alt="Supported Python versions" /></a>
|
|
36
|
+
<a href="https://pepy.tech/project/ssot-cli"><img src="https://static.pepy.tech/badge/ssot-cli" alt="Downloads" /></a>
|
|
37
|
+
<a href="https://hits.sh/github.com/groupsum/ssot-registry/"><img src="https://hits.sh/github.com/groupsum/ssot-registry.svg?style=flat-square" alt="Repository hits" /></a>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
`ssot-cli` is the primary command-line distribution for SSOT.
|
|
41
|
+
|
|
42
|
+
It installs `ssot`, `ssot-cli`, and `ssot-registry` as equivalent executables over the same parser and runtime. The command surface is implemented here, while domain logic lives in `ssot-registry` and shared contract metadata comes from `ssot-contracts`.
|
|
43
|
+
|
|
44
|
+
- GitHub: https://github.com/groupsum/ssot-registry
|
|
45
|
+
|
|
46
|
+
## What this package owns
|
|
47
|
+
|
|
48
|
+
- The primary end-user CLI distribution
|
|
49
|
+
- Argument parsing and command registration for the SSOT command surface
|
|
50
|
+
- Structured output rendering and file-output conventions for CLI workflows
|
|
51
|
+
|
|
52
|
+
## Install
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
python -m pip install ssot-cli
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
For local development:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
python -m pip install -e pkgs/ssot-cli
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This package depends on `ssot-registry` and `ssot-contracts`, so installing it gives you the full CLI runtime stack.
|
|
65
|
+
|
|
66
|
+
## Executable names
|
|
67
|
+
|
|
68
|
+
This package installs three equivalent console scripts:
|
|
69
|
+
|
|
70
|
+
- `ssot`
|
|
71
|
+
- `ssot-cli`
|
|
72
|
+
- `ssot-registry`
|
|
73
|
+
|
|
74
|
+
Prefer `ssot` in new automation and documentation. `ssot-registry` remains a compatibility alias. Every command block below can be invoked with any of the three names.
|
|
75
|
+
|
|
76
|
+
## Boundaries vs releases
|
|
77
|
+
|
|
78
|
+
Boundaries and releases are intentionally different:
|
|
79
|
+
|
|
80
|
+
- A boundary defines the scoped set of features and profiles that belong to a candidate delivery unit.
|
|
81
|
+
- Freezing a boundary locks that resolved scope and emits a boundary snapshot.
|
|
82
|
+
- A release points at a frozen boundary and then bundles claims and evidence for certify, promote, publish, and revoke workflows.
|
|
83
|
+
|
|
84
|
+
## CLI quick reference
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
ssot --help
|
|
88
|
+
ssot-cli --help
|
|
89
|
+
ssot-registry --help
|
|
90
|
+
ssot profile --help
|
|
91
|
+
ssot feature --help
|
|
92
|
+
ssot boundary --help
|
|
93
|
+
ssot release --help
|
|
94
|
+
ssot graph --help
|
|
95
|
+
ssot registry --help
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Screenshots
|
|
99
|
+
|
|
100
|
+
Regenerate these assets with `python scripts/generate_cli_screenshots.py`.
|
|
101
|
+
|
|
102
|
+
Top-level command help:
|
|
103
|
+
|
|
104
|
+

|
|
105
|
+
|
|
106
|
+
Boundary command help:
|
|
107
|
+
|
|
108
|
+

|
|
109
|
+
|
|
110
|
+
## CLI conventions
|
|
111
|
+
|
|
112
|
+
- Most commands accept `[path]` as an optional positional argument. Default is current directory (`.`).
|
|
113
|
+
- Commands emit structured output by default.
|
|
114
|
+
- Global rendering flags apply to all commands:
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
--output-format {json,csv,df,yaml,toml}
|
|
118
|
+
--output-file PATH
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
- Non-zero exit code indicates an operation failure or failed checks.
|
|
122
|
+
|
|
123
|
+
## Command surface
|
|
124
|
+
|
|
125
|
+
### Top-level commands
|
|
126
|
+
|
|
127
|
+
- `init`
|
|
128
|
+
- `validate`
|
|
129
|
+
- `upgrade`
|
|
130
|
+
- `adr`
|
|
131
|
+
- `spec`
|
|
132
|
+
- `feature`
|
|
133
|
+
- `profile`
|
|
134
|
+
- `test`
|
|
135
|
+
- `issue`
|
|
136
|
+
- `claim`
|
|
137
|
+
- `evidence`
|
|
138
|
+
- `risk`
|
|
139
|
+
- `boundary`
|
|
140
|
+
- `release`
|
|
141
|
+
- `graph`
|
|
142
|
+
- `registry`
|
|
143
|
+
|
|
144
|
+
### `init`
|
|
145
|
+
|
|
146
|
+
```text
|
|
147
|
+
ssot-registry init [path]
|
|
148
|
+
--repo-id REPO_ID
|
|
149
|
+
--repo-name REPO_NAME
|
|
150
|
+
--version VERSION
|
|
151
|
+
--force
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### `validate`
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
ssot-registry validate [path]
|
|
158
|
+
--write-report
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### `upgrade`
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
ssot-registry upgrade [path]
|
|
165
|
+
--target-version VERSION
|
|
166
|
+
--sync-docs
|
|
167
|
+
--write-report
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### `adr`
|
|
171
|
+
|
|
172
|
+
Subcommands:
|
|
173
|
+
|
|
174
|
+
- `create`, `get`, `list`, `update`, `set-status`, `supersede`, `delete`, `sync`
|
|
175
|
+
- `reserve create`, `reserve list`
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
ssot-registry adr create [path]
|
|
179
|
+
--title TITLE (required)
|
|
180
|
+
--slug SLUG (required)
|
|
181
|
+
--body-file BODY_FILE (required)
|
|
182
|
+
--number NUMBER
|
|
183
|
+
--status {draft,in_review,accepted,rejected,withdrawn,superseded,retired}
|
|
184
|
+
--note NOTE
|
|
185
|
+
--origin {repo-local,ssot-origin,ssot-core}
|
|
186
|
+
--reserve-range RANGE_NAME
|
|
187
|
+
|
|
188
|
+
ssot-registry adr get [path]
|
|
189
|
+
--id ID (required)
|
|
190
|
+
|
|
191
|
+
ssot-registry adr list [path]
|
|
192
|
+
|
|
193
|
+
ssot-registry adr update [path]
|
|
194
|
+
--id ID (required)
|
|
195
|
+
--title TITLE
|
|
196
|
+
--body-file BODY_FILE
|
|
197
|
+
--status {draft,in_review,accepted,rejected,withdrawn,superseded,retired}
|
|
198
|
+
--note NOTE
|
|
199
|
+
|
|
200
|
+
ssot-registry adr set-status [path]
|
|
201
|
+
--id ID (required)
|
|
202
|
+
--status {draft,in_review,accepted,rejected,withdrawn,superseded,retired} (required)
|
|
203
|
+
--note NOTE
|
|
204
|
+
|
|
205
|
+
ssot-registry adr supersede [path]
|
|
206
|
+
--id ID (required)
|
|
207
|
+
--supersedes IDS [IDS ...] (required)
|
|
208
|
+
--note NOTE
|
|
209
|
+
|
|
210
|
+
ssot-registry adr delete [path]
|
|
211
|
+
--id ID (required)
|
|
212
|
+
|
|
213
|
+
ssot-registry adr sync [path]
|
|
214
|
+
|
|
215
|
+
ssot-registry adr reserve create [path]
|
|
216
|
+
--name NAME (required)
|
|
217
|
+
--start START (required)
|
|
218
|
+
--end END (required)
|
|
219
|
+
|
|
220
|
+
ssot-registry adr reserve list [path]
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### `spec`
|
|
224
|
+
|
|
225
|
+
Subcommands:
|
|
226
|
+
|
|
227
|
+
- `create`, `get`, `list`, `update`, `set-status`, `supersede`, `delete`, `sync`
|
|
228
|
+
- `reserve create`, `reserve list`
|
|
229
|
+
|
|
230
|
+
```text
|
|
231
|
+
ssot-registry spec create [path]
|
|
232
|
+
--title TITLE (required)
|
|
233
|
+
--slug SLUG (required)
|
|
234
|
+
--body-file BODY_FILE (required)
|
|
235
|
+
--number NUMBER
|
|
236
|
+
--origin {repo-local,ssot-origin,ssot-core}
|
|
237
|
+
--kind {normative,operational,governance,local-policy}
|
|
238
|
+
--status {draft,in_review,accepted,rejected,withdrawn,superseded,retired}
|
|
239
|
+
--note NOTE
|
|
240
|
+
--reserve-range RANGE_NAME
|
|
241
|
+
|
|
242
|
+
ssot-registry spec get [path]
|
|
243
|
+
--id ID (required)
|
|
244
|
+
|
|
245
|
+
ssot-registry spec list [path]
|
|
246
|
+
|
|
247
|
+
ssot-registry spec update [path]
|
|
248
|
+
--id ID (required)
|
|
249
|
+
--title TITLE
|
|
250
|
+
--body-file BODY_FILE
|
|
251
|
+
--kind {normative,operational,governance,local-policy}
|
|
252
|
+
--status {draft,in_review,accepted,rejected,withdrawn,superseded,retired}
|
|
253
|
+
--note NOTE
|
|
254
|
+
|
|
255
|
+
ssot-registry spec set-status [path]
|
|
256
|
+
--id ID (required)
|
|
257
|
+
--status {draft,in_review,accepted,rejected,withdrawn,superseded,retired} (required)
|
|
258
|
+
--note NOTE
|
|
259
|
+
|
|
260
|
+
ssot-registry spec supersede [path]
|
|
261
|
+
--id ID (required)
|
|
262
|
+
--supersedes IDS [IDS ...] (required)
|
|
263
|
+
--note NOTE
|
|
264
|
+
|
|
265
|
+
ssot-registry spec delete [path]
|
|
266
|
+
--id ID (required)
|
|
267
|
+
|
|
268
|
+
ssot-registry spec sync [path]
|
|
269
|
+
|
|
270
|
+
ssot-registry spec reserve create [path]
|
|
271
|
+
--name NAME (required)
|
|
272
|
+
--start START (required)
|
|
273
|
+
--end END (required)
|
|
274
|
+
|
|
275
|
+
ssot-registry spec reserve list [path]
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### `feature`
|
|
279
|
+
|
|
280
|
+
Subcommands:
|
|
281
|
+
|
|
282
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`, `plan`
|
|
283
|
+
- `lifecycle set`
|
|
284
|
+
|
|
285
|
+
```text
|
|
286
|
+
ssot-registry feature create [path]
|
|
287
|
+
--id ID (required)
|
|
288
|
+
--title TITLE (required)
|
|
289
|
+
--description DESCRIPTION
|
|
290
|
+
--implementation-status {absent,implemented,partial}
|
|
291
|
+
--lifecycle-stage {active,deprecated,obsolete,removed}
|
|
292
|
+
--replacement-feature-id [REPLACEMENT_FEATURE_ID ...]
|
|
293
|
+
--note NOTE
|
|
294
|
+
--horizon {backlog,current,explicit,future,next,out_of_bounds}
|
|
295
|
+
--claim-tier {T0,T1,T2,T3,T4}
|
|
296
|
+
--target-lifecycle-stage {active,deprecated,obsolete,removed}
|
|
297
|
+
--slot SLOT
|
|
298
|
+
--claim-ids [CLAIM_IDS ...]
|
|
299
|
+
--test-ids [TEST_IDS ...]
|
|
300
|
+
--requires [REQUIRES ...]
|
|
301
|
+
|
|
302
|
+
ssot-registry feature get [path]
|
|
303
|
+
--id ID (required)
|
|
304
|
+
|
|
305
|
+
ssot-registry feature list [path]
|
|
306
|
+
|
|
307
|
+
ssot-registry feature update [path]
|
|
308
|
+
--id ID (required)
|
|
309
|
+
--title TITLE
|
|
310
|
+
--description DESCRIPTION
|
|
311
|
+
--implementation-status {absent,implemented,partial}
|
|
312
|
+
|
|
313
|
+
ssot-registry feature delete [path]
|
|
314
|
+
--id ID (required)
|
|
315
|
+
|
|
316
|
+
ssot-registry feature link [path]
|
|
317
|
+
--id ID (required)
|
|
318
|
+
--claim-ids [CLAIM_IDS ...]
|
|
319
|
+
--test-ids [TEST_IDS ...]
|
|
320
|
+
--requires [REQUIRES ...]
|
|
321
|
+
|
|
322
|
+
ssot-registry feature unlink [path]
|
|
323
|
+
--id ID (required)
|
|
324
|
+
--claim-ids [CLAIM_IDS ...]
|
|
325
|
+
--test-ids [TEST_IDS ...]
|
|
326
|
+
--requires [REQUIRES ...]
|
|
327
|
+
|
|
328
|
+
ssot-registry feature plan [path]
|
|
329
|
+
--ids IDS [IDS ...] (required)
|
|
330
|
+
--horizon {backlog,current,explicit,future,next,out_of_bounds} (required)
|
|
331
|
+
--claim-tier {T0,T1,T2,T3,T4}
|
|
332
|
+
--target-lifecycle-stage {active,deprecated,obsolete,removed}
|
|
333
|
+
--slot SLOT
|
|
334
|
+
|
|
335
|
+
ssot-registry feature lifecycle set [path]
|
|
336
|
+
--ids IDS [IDS ...] (required)
|
|
337
|
+
--stage {active,deprecated,obsolete,removed} (required)
|
|
338
|
+
--replacement-feature-id [REPLACEMENT_FEATURE_ID ...]
|
|
339
|
+
--effective-release-id EFFECTIVE_RELEASE_ID
|
|
340
|
+
--note NOTE
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### `profile`
|
|
344
|
+
|
|
345
|
+
Subcommands:
|
|
346
|
+
|
|
347
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`, `evaluate`, `verify`
|
|
348
|
+
|
|
349
|
+
```text
|
|
350
|
+
ssot-registry profile create [path]
|
|
351
|
+
--id ID (required)
|
|
352
|
+
--title TITLE (required)
|
|
353
|
+
--description DESCRIPTION
|
|
354
|
+
--status {draft,active,retired}
|
|
355
|
+
--kind {capability,certification,deployment,interoperability}
|
|
356
|
+
--feature-ids [FEATURE_IDS ...]
|
|
357
|
+
--profile-ids [PROFILE_IDS ...]
|
|
358
|
+
--claim-tier {T0,T1,T2,T3,T4}
|
|
359
|
+
--allow-feature-override-tier | --no-allow-feature-override-tier
|
|
360
|
+
|
|
361
|
+
ssot-registry profile get [path]
|
|
362
|
+
--id ID (required)
|
|
363
|
+
|
|
364
|
+
ssot-registry profile list [path]
|
|
365
|
+
|
|
366
|
+
ssot-registry profile update [path]
|
|
367
|
+
--id ID (required)
|
|
368
|
+
--title TITLE
|
|
369
|
+
--description DESCRIPTION
|
|
370
|
+
--status {draft,active,retired}
|
|
371
|
+
--kind {capability,certification,deployment,interoperability}
|
|
372
|
+
--claim-tier {T0,T1,T2,T3,T4}
|
|
373
|
+
|
|
374
|
+
ssot-registry profile delete [path]
|
|
375
|
+
--id ID (required)
|
|
376
|
+
|
|
377
|
+
ssot-registry profile link [path]
|
|
378
|
+
--id ID (required)
|
|
379
|
+
--feature-ids [FEATURE_IDS ...]
|
|
380
|
+
--profile-ids [PROFILE_IDS ...]
|
|
381
|
+
|
|
382
|
+
ssot-registry profile unlink [path]
|
|
383
|
+
--id ID (required)
|
|
384
|
+
--feature-ids [FEATURE_IDS ...]
|
|
385
|
+
--profile-ids [PROFILE_IDS ...]
|
|
386
|
+
|
|
387
|
+
ssot-registry profile evaluate [path]
|
|
388
|
+
--profile-id PROFILE_ID (required)
|
|
389
|
+
|
|
390
|
+
ssot-registry profile verify [path]
|
|
391
|
+
--profile-id PROFILE_ID (required)
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### `test`
|
|
395
|
+
|
|
396
|
+
Subcommands:
|
|
397
|
+
|
|
398
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`
|
|
399
|
+
|
|
400
|
+
```text
|
|
401
|
+
ssot-registry test create [path]
|
|
402
|
+
--id ID (required)
|
|
403
|
+
--title TITLE (required)
|
|
404
|
+
--status {planned,passing,failing,blocked,skipped}
|
|
405
|
+
--kind KIND (required)
|
|
406
|
+
--test-path TEST_PATH (required)
|
|
407
|
+
--feature-ids [FEATURE_IDS ...]
|
|
408
|
+
--claim-ids [CLAIM_IDS ...]
|
|
409
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
410
|
+
|
|
411
|
+
ssot-registry test get [path]
|
|
412
|
+
--id ID (required)
|
|
413
|
+
|
|
414
|
+
ssot-registry test list [path]
|
|
415
|
+
|
|
416
|
+
ssot-registry test update [path]
|
|
417
|
+
--id ID (required)
|
|
418
|
+
--title TITLE
|
|
419
|
+
--status {planned,passing,failing,blocked,skipped}
|
|
420
|
+
--kind KIND
|
|
421
|
+
--test-path TEST_PATH
|
|
422
|
+
|
|
423
|
+
ssot-registry test delete [path]
|
|
424
|
+
--id ID (required)
|
|
425
|
+
|
|
426
|
+
ssot-registry test link [path]
|
|
427
|
+
--id ID (required)
|
|
428
|
+
--feature-ids [FEATURE_IDS ...]
|
|
429
|
+
--claim-ids [CLAIM_IDS ...]
|
|
430
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
431
|
+
|
|
432
|
+
ssot-registry test unlink [path]
|
|
433
|
+
--id ID (required)
|
|
434
|
+
--feature-ids [FEATURE_IDS ...]
|
|
435
|
+
--claim-ids [CLAIM_IDS ...]
|
|
436
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### `issue`
|
|
440
|
+
|
|
441
|
+
Subcommands:
|
|
442
|
+
|
|
443
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`, `plan`, `close`, `reopen`
|
|
444
|
+
|
|
445
|
+
```text
|
|
446
|
+
ssot-registry issue create [path]
|
|
447
|
+
--id ID (required)
|
|
448
|
+
--title TITLE (required)
|
|
449
|
+
--status {open,in_progress,blocked,resolved,closed}
|
|
450
|
+
--severity {low,medium,high,critical}
|
|
451
|
+
--description DESCRIPTION
|
|
452
|
+
--horizon {current,next,future,explicit,backlog,out_of_bounds}
|
|
453
|
+
--slot SLOT
|
|
454
|
+
--feature-ids [FEATURE_IDS ...]
|
|
455
|
+
--claim-ids [CLAIM_IDS ...]
|
|
456
|
+
--test-ids [TEST_IDS ...]
|
|
457
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
458
|
+
--risk-ids [RISK_IDS ...]
|
|
459
|
+
--release-blocking | --no-release-blocking
|
|
460
|
+
|
|
461
|
+
ssot-registry issue get [path]
|
|
462
|
+
--id ID (required)
|
|
463
|
+
|
|
464
|
+
ssot-registry issue list [path]
|
|
465
|
+
|
|
466
|
+
ssot-registry issue update [path]
|
|
467
|
+
--id ID (required)
|
|
468
|
+
--title TITLE
|
|
469
|
+
--severity {low,medium,high,critical}
|
|
470
|
+
--description DESCRIPTION
|
|
471
|
+
--release-blocking | --no-release-blocking
|
|
472
|
+
|
|
473
|
+
ssot-registry issue delete [path]
|
|
474
|
+
--id ID (required)
|
|
475
|
+
|
|
476
|
+
ssot-registry issue link [path]
|
|
477
|
+
--id ID (required)
|
|
478
|
+
--feature-ids [FEATURE_IDS ...]
|
|
479
|
+
--claim-ids [CLAIM_IDS ...]
|
|
480
|
+
--test-ids [TEST_IDS ...]
|
|
481
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
482
|
+
--risk-ids [RISK_IDS ...]
|
|
483
|
+
|
|
484
|
+
ssot-registry issue unlink [path]
|
|
485
|
+
--id ID (required)
|
|
486
|
+
--feature-ids [FEATURE_IDS ...]
|
|
487
|
+
--claim-ids [CLAIM_IDS ...]
|
|
488
|
+
--test-ids [TEST_IDS ...]
|
|
489
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
490
|
+
--risk-ids [RISK_IDS ...]
|
|
491
|
+
|
|
492
|
+
ssot-registry issue plan [path]
|
|
493
|
+
--ids IDS [IDS ...] (required)
|
|
494
|
+
--horizon {current,next,future,explicit,backlog,out_of_bounds} (required)
|
|
495
|
+
--slot SLOT
|
|
496
|
+
|
|
497
|
+
ssot-registry issue close [path]
|
|
498
|
+
--id ID (required)
|
|
499
|
+
|
|
500
|
+
ssot-registry issue reopen [path]
|
|
501
|
+
--id ID (required)
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### `claim`
|
|
505
|
+
|
|
506
|
+
Subcommands:
|
|
507
|
+
|
|
508
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`, `evaluate`, `set-status`, `set-tier`
|
|
509
|
+
|
|
510
|
+
```text
|
|
511
|
+
ssot-registry claim create [path]
|
|
512
|
+
--id ID (required)
|
|
513
|
+
--title TITLE (required)
|
|
514
|
+
--status {proposed,declared,implemented,asserted,evidenced,certified,promoted,published,blocked,retired}
|
|
515
|
+
--tier {T0,T1,T2,T3,T4}
|
|
516
|
+
--kind KIND (required)
|
|
517
|
+
--description DESCRIPTION
|
|
518
|
+
--feature-ids [FEATURE_IDS ...]
|
|
519
|
+
--test-ids [TEST_IDS ...]
|
|
520
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
521
|
+
|
|
522
|
+
ssot-registry claim get [path]
|
|
523
|
+
--id ID (required)
|
|
524
|
+
|
|
525
|
+
ssot-registry claim list [path]
|
|
526
|
+
|
|
527
|
+
ssot-registry claim update [path]
|
|
528
|
+
--id ID (required)
|
|
529
|
+
--title TITLE
|
|
530
|
+
--kind KIND
|
|
531
|
+
--description DESCRIPTION
|
|
532
|
+
|
|
533
|
+
ssot-registry claim delete [path]
|
|
534
|
+
--id ID (required)
|
|
535
|
+
|
|
536
|
+
ssot-registry claim link [path]
|
|
537
|
+
--id ID (required)
|
|
538
|
+
--feature-ids [FEATURE_IDS ...]
|
|
539
|
+
--test-ids [TEST_IDS ...]
|
|
540
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
541
|
+
|
|
542
|
+
ssot-registry claim unlink [path]
|
|
543
|
+
--id ID (required)
|
|
544
|
+
--feature-ids [FEATURE_IDS ...]
|
|
545
|
+
--test-ids [TEST_IDS ...]
|
|
546
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
547
|
+
|
|
548
|
+
ssot-registry claim evaluate [path]
|
|
549
|
+
--claim-id CLAIM_ID
|
|
550
|
+
|
|
551
|
+
ssot-registry claim set-status [path]
|
|
552
|
+
--id ID (required)
|
|
553
|
+
--status {proposed,declared,implemented,asserted,evidenced,certified,promoted,published,blocked,retired} (required)
|
|
554
|
+
|
|
555
|
+
ssot-registry claim set-tier [path]
|
|
556
|
+
--id ID (required)
|
|
557
|
+
--tier {T0,T1,T2,T3,T4} (required)
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### `evidence`
|
|
561
|
+
|
|
562
|
+
Subcommands:
|
|
563
|
+
|
|
564
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`, `verify`
|
|
565
|
+
|
|
566
|
+
```text
|
|
567
|
+
ssot-registry evidence create [path]
|
|
568
|
+
--id ID (required)
|
|
569
|
+
--title TITLE (required)
|
|
570
|
+
--status {planned,collected,passed,failed,stale}
|
|
571
|
+
--kind KIND (required)
|
|
572
|
+
--tier {T0,T1,T2,T3,T4}
|
|
573
|
+
--evidence-path EVIDENCE_PATH (required)
|
|
574
|
+
--claim-ids [CLAIM_IDS ...]
|
|
575
|
+
--test-ids [TEST_IDS ...]
|
|
576
|
+
|
|
577
|
+
ssot-registry evidence get [path]
|
|
578
|
+
--id ID (required)
|
|
579
|
+
|
|
580
|
+
ssot-registry evidence list [path]
|
|
581
|
+
|
|
582
|
+
ssot-registry evidence update [path]
|
|
583
|
+
--id ID (required)
|
|
584
|
+
--title TITLE
|
|
585
|
+
--status {planned,collected,passed,failed,stale}
|
|
586
|
+
--kind KIND
|
|
587
|
+
--tier {T0,T1,T2,T3,T4}
|
|
588
|
+
--evidence-path EVIDENCE_PATH
|
|
589
|
+
|
|
590
|
+
ssot-registry evidence delete [path]
|
|
591
|
+
--id ID (required)
|
|
592
|
+
|
|
593
|
+
ssot-registry evidence link [path]
|
|
594
|
+
--id ID (required)
|
|
595
|
+
--claim-ids [CLAIM_IDS ...]
|
|
596
|
+
--test-ids [TEST_IDS ...]
|
|
597
|
+
|
|
598
|
+
ssot-registry evidence unlink [path]
|
|
599
|
+
--id ID (required)
|
|
600
|
+
--claim-ids [CLAIM_IDS ...]
|
|
601
|
+
--test-ids [TEST_IDS ...]
|
|
602
|
+
|
|
603
|
+
ssot-registry evidence verify [path]
|
|
604
|
+
--evidence-id EVIDENCE_ID
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
### `risk`
|
|
608
|
+
|
|
609
|
+
Subcommands:
|
|
610
|
+
|
|
611
|
+
- `create`, `get`, `list`, `update`, `delete`, `link`, `unlink`, `mitigate`, `accept`, `retire`
|
|
612
|
+
|
|
613
|
+
```text
|
|
614
|
+
ssot-registry risk create [path]
|
|
615
|
+
--id ID (required)
|
|
616
|
+
--title TITLE (required)
|
|
617
|
+
--status {active,mitigated,accepted,retired}
|
|
618
|
+
--severity {low,medium,high,critical}
|
|
619
|
+
--description DESCRIPTION
|
|
620
|
+
--feature-ids [FEATURE_IDS ...]
|
|
621
|
+
--claim-ids [CLAIM_IDS ...]
|
|
622
|
+
--test-ids [TEST_IDS ...]
|
|
623
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
624
|
+
--issue-ids [ISSUE_IDS ...]
|
|
625
|
+
--release-blocking | --no-release-blocking
|
|
626
|
+
|
|
627
|
+
ssot-registry risk get [path]
|
|
628
|
+
--id ID (required)
|
|
629
|
+
|
|
630
|
+
ssot-registry risk list [path]
|
|
631
|
+
|
|
632
|
+
ssot-registry risk update [path]
|
|
633
|
+
--id ID (required)
|
|
634
|
+
--title TITLE
|
|
635
|
+
--severity {low,medium,high,critical}
|
|
636
|
+
--description DESCRIPTION
|
|
637
|
+
--release-blocking | --no-release-blocking
|
|
638
|
+
|
|
639
|
+
ssot-registry risk delete [path]
|
|
640
|
+
--id ID (required)
|
|
641
|
+
|
|
642
|
+
ssot-registry risk link [path]
|
|
643
|
+
--id ID (required)
|
|
644
|
+
--feature-ids [FEATURE_IDS ...]
|
|
645
|
+
--claim-ids [CLAIM_IDS ...]
|
|
646
|
+
--test-ids [TEST_IDS ...]
|
|
647
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
648
|
+
--issue-ids [ISSUE_IDS ...]
|
|
649
|
+
|
|
650
|
+
ssot-registry risk unlink [path]
|
|
651
|
+
--id ID (required)
|
|
652
|
+
--feature-ids [FEATURE_IDS ...]
|
|
653
|
+
--claim-ids [CLAIM_IDS ...]
|
|
654
|
+
--test-ids [TEST_IDS ...]
|
|
655
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
656
|
+
--issue-ids [ISSUE_IDS ...]
|
|
657
|
+
|
|
658
|
+
ssot-registry risk mitigate [path]
|
|
659
|
+
--id ID (required)
|
|
660
|
+
|
|
661
|
+
ssot-registry risk accept [path]
|
|
662
|
+
--id ID (required)
|
|
663
|
+
|
|
664
|
+
ssot-registry risk retire [path]
|
|
665
|
+
--id ID (required)
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
### `boundary`
|
|
669
|
+
|
|
670
|
+
Subcommands:
|
|
671
|
+
|
|
672
|
+
- `create`, `get`, `list`, `update`, `delete`
|
|
673
|
+
- `add-feature`, `remove-feature`, `add-profile`, `remove-profile`
|
|
674
|
+
- `freeze`
|
|
675
|
+
|
|
676
|
+
```text
|
|
677
|
+
ssot-registry boundary create [path]
|
|
678
|
+
--id ID (required)
|
|
679
|
+
--title TITLE (required)
|
|
680
|
+
--status {draft,active,frozen,retired}
|
|
681
|
+
--frozen | --no-frozen
|
|
682
|
+
--feature-ids [FEATURE_IDS ...]
|
|
683
|
+
--profile-ids [PROFILE_IDS ...]
|
|
684
|
+
|
|
685
|
+
ssot-registry boundary get [path]
|
|
686
|
+
--id ID (required)
|
|
687
|
+
|
|
688
|
+
ssot-registry boundary list [path]
|
|
689
|
+
|
|
690
|
+
ssot-registry boundary update [path]
|
|
691
|
+
--id ID (required)
|
|
692
|
+
--title TITLE
|
|
693
|
+
--status {draft,active,frozen,retired}
|
|
694
|
+
--frozen | --no-frozen
|
|
695
|
+
|
|
696
|
+
ssot-registry boundary delete [path]
|
|
697
|
+
--id ID (required)
|
|
698
|
+
|
|
699
|
+
ssot-registry boundary add-feature [path]
|
|
700
|
+
--id ID (required)
|
|
701
|
+
--feature-ids FEATURE_IDS [FEATURE_IDS ...] (required)
|
|
702
|
+
|
|
703
|
+
ssot-registry boundary remove-feature [path]
|
|
704
|
+
--id ID (required)
|
|
705
|
+
--feature-ids FEATURE_IDS [FEATURE_IDS ...] (required)
|
|
706
|
+
|
|
707
|
+
ssot-registry boundary add-profile [path]
|
|
708
|
+
--id ID (required)
|
|
709
|
+
--profile-ids PROFILE_IDS [PROFILE_IDS ...] (required)
|
|
710
|
+
|
|
711
|
+
ssot-registry boundary remove-profile [path]
|
|
712
|
+
--id ID (required)
|
|
713
|
+
--profile-ids PROFILE_IDS [PROFILE_IDS ...] (required)
|
|
714
|
+
|
|
715
|
+
ssot-registry boundary freeze [path]
|
|
716
|
+
--boundary-id BOUNDARY_ID
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
### `release`
|
|
720
|
+
|
|
721
|
+
Subcommands:
|
|
722
|
+
|
|
723
|
+
- `create`, `get`, `list`, `update`, `delete`
|
|
724
|
+
- `add-claim`, `remove-claim`, `add-evidence`, `remove-evidence`
|
|
725
|
+
- `certify`, `promote`, `publish`, `revoke`
|
|
726
|
+
|
|
727
|
+
```text
|
|
728
|
+
ssot-registry release create [path]
|
|
729
|
+
--id ID (required)
|
|
730
|
+
--version VERSION (required)
|
|
731
|
+
--status {draft,candidate,certified,promoted,published,revoked}
|
|
732
|
+
--boundary-id BOUNDARY_ID (required)
|
|
733
|
+
--claim-ids [CLAIM_IDS ...]
|
|
734
|
+
--evidence-ids [EVIDENCE_IDS ...]
|
|
735
|
+
|
|
736
|
+
ssot-registry release get [path]
|
|
737
|
+
--id ID (required)
|
|
738
|
+
|
|
739
|
+
ssot-registry release list [path]
|
|
740
|
+
|
|
741
|
+
ssot-registry release update [path]
|
|
742
|
+
--id ID (required)
|
|
743
|
+
--version VERSION
|
|
744
|
+
--status {draft,candidate,certified,promoted,published,revoked}
|
|
745
|
+
--boundary-id BOUNDARY_ID
|
|
746
|
+
|
|
747
|
+
ssot-registry release delete [path]
|
|
748
|
+
--id ID (required)
|
|
749
|
+
|
|
750
|
+
ssot-registry release add-claim [path]
|
|
751
|
+
--id ID (required)
|
|
752
|
+
--claim-ids CLAIM_IDS [CLAIM_IDS ...] (required)
|
|
753
|
+
|
|
754
|
+
ssot-registry release remove-claim [path]
|
|
755
|
+
--id ID (required)
|
|
756
|
+
--claim-ids CLAIM_IDS [CLAIM_IDS ...] (required)
|
|
757
|
+
|
|
758
|
+
ssot-registry release add-evidence [path]
|
|
759
|
+
--id ID (required)
|
|
760
|
+
--evidence-ids EVIDENCE_IDS [EVIDENCE_IDS ...] (required)
|
|
761
|
+
|
|
762
|
+
ssot-registry release remove-evidence [path]
|
|
763
|
+
--id ID (required)
|
|
764
|
+
--evidence-ids EVIDENCE_IDS [EVIDENCE_IDS ...] (required)
|
|
765
|
+
|
|
766
|
+
ssot-registry release certify [path]
|
|
767
|
+
--release-id RELEASE_ID
|
|
768
|
+
--write-report
|
|
769
|
+
|
|
770
|
+
ssot-registry release promote [path]
|
|
771
|
+
--release-id RELEASE_ID
|
|
772
|
+
|
|
773
|
+
ssot-registry release publish [path]
|
|
774
|
+
--release-id RELEASE_ID
|
|
775
|
+
|
|
776
|
+
ssot-registry release revoke [path]
|
|
777
|
+
--release-id RELEASE_ID (required)
|
|
778
|
+
--reason REASON (required)
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
### `graph`
|
|
782
|
+
|
|
783
|
+
Subcommands:
|
|
784
|
+
|
|
785
|
+
- `export`
|
|
786
|
+
|
|
787
|
+
```text
|
|
788
|
+
ssot-registry graph export [path]
|
|
789
|
+
--format {json,dot,png,svg} (required)
|
|
790
|
+
--output OUTPUT
|
|
791
|
+
```
|
|
792
|
+
|
|
793
|
+
### `registry`
|
|
794
|
+
|
|
795
|
+
Subcommands:
|
|
796
|
+
|
|
797
|
+
- `export`
|
|
798
|
+
|
|
799
|
+
```text
|
|
800
|
+
ssot-registry registry export [path]
|
|
801
|
+
--format {json,csv,df,yaml,toml} (required)
|
|
802
|
+
--output OUTPUT
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
## Example workflows
|
|
806
|
+
|
|
807
|
+
```bash
|
|
808
|
+
ssot init . --repo-id repo:demo.app --repo-name "Demo App" --version 0.1.0
|
|
809
|
+
ssot validate . --write-report
|
|
810
|
+
ssot feature list .
|
|
811
|
+
ssot profile list .
|
|
812
|
+
ssot boundary list .
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
```bash
|
|
816
|
+
ssot boundary create . --id bnd:demo.v0 --title "Demo v0 scope" --feature-ids feat:demo.login --profile-ids prf:demo.core
|
|
817
|
+
ssot boundary freeze . --boundary-id bnd:demo.v0
|
|
818
|
+
ssot release create . --id rel:0.1.0 --version 0.1.0 --boundary-id bnd:demo.v0 --claim-ids clm:demo.login.t1 --evidence-ids evd:demo.login.pytest
|
|
819
|
+
ssot release certify . --release-id rel:0.1.0 --write-report
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
## Package relationships
|
|
823
|
+
|
|
824
|
+
- Package type: CLI distribution
|
|
825
|
+
- Depends on: `ssot-registry`, `ssot-contracts`
|
|
826
|
+
- Related packages: `ssot-tui`, `ssot-views`, `ssot-codegen`
|
|
827
|
+
|
|
828
|
+
If you need the command-line interface, this is the package to install.
|