You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -60,7 +60,7 @@ Use this table to determine which steps apply to the new item type before readin
60
60
61
61
### Simple Item (no definition, no params)
62
62
63
-
Only needs Steps 1-3, 9 (add to the standard multi-case match), and 11 (ALL_ITEM_TYPES + basic_item_parametrize).
63
+
Only needs Steps 1-3, 9 (add to the standard multi-case match), 10a (review `command_support.yaml` for `unsupported_items`), 11 (ALL_ITEM_TYPES + basic_item_parametrize), 12, and 13.
This file controls which CLI commands are enabled for each item type. Add the new item type's snake_case name to the appropriate command sections based on the API Support Matrix from the Prerequisites.
326
326
327
-
**Always add to these sections** (basic item support):
328
-
- No changes needed for `ls`, `cd`, `exists`, `get`, `set`, `rm`, `open`, `mkdir` -- these work for all item types via the generic items API.
327
+
> **This step applies to ALL item types, not just items with definition support.** Sub-step 10a (`unsupported_items` review) always applies. Sub-steps 10b-10e apply only to items with definition support.
Review the `unsupported_items` sections for `rm`, `get`, `set`, and `mkdir`. If the new item type does **not** support one of these operations via the Fabric REST API, add it to the relevant `unsupported_items` list. Check existing entries (e.g., `dashboard`, `paginated_report`) for reference.
332
+
333
+
> **Ask the requestor:** "Can this item type be deleted (rm), read with detailed properties (get), updated (set), and created (mkdir) via the standard items API?" Add the item to `unsupported_items` for any command it does not support.
334
+
335
+
```yaml
336
+
# Example: item cannot be deleted or created via API
337
+
rm:
338
+
unsupported_items:
339
+
# ... existing items ...
340
+
- new_item # <-- Add here if rm is NOT supported
341
+
mkdir:
342
+
unsupported_items:
343
+
# ... existing items ...
344
+
- new_item # <-- Add here if mkdir is NOT supported
345
+
```
346
+
347
+
#### 10b. Add to `export` (if the item supports `getItemDefinition` API)
329
348
330
-
**Add to `export` if the item supports `getItemDefinition` API:**
331
349
```yaml
332
350
commands:
333
351
fs:
@@ -338,23 +356,26 @@ commands:
338
356
- new_item # <-- Add here, maintain alphabetical order
339
357
```
340
358
341
-
**Add to `import` if the item supports `createItem` with definition:**
359
+
#### 10c. Add to `import` (if the item supports `createItem` with definition)
360
+
342
361
```yaml
343
362
import:
344
363
supported_items:
345
364
# ... existing items ...
346
365
- new_item # <-- Add here
347
366
```
348
367
349
-
**Add to `mv` if the item supports all three definition APIs:**
368
+
#### 10d. Add to `mv` (if the item supports all three definition APIs)
369
+
350
370
```yaml
351
371
mv:
352
372
supported_items:
353
373
# ... existing items ...
354
374
- new_item # <-- Add here
355
375
```
356
376
357
-
**Add to `cp` if the item supports all three definition APIs:**
377
+
#### 10e. Add to `cp` (if the item supports all three definition APIs)
378
+
358
379
```yaml
359
380
cp:
360
381
supported_items:
@@ -375,6 +396,8 @@ commands:
375
396
376
397
Add the new item type to the parametrized test lists so that existing tests automatically cover the new item type.
377
398
399
+
> **IMPORTANT: Do NOT create VCR cassette recording files.** Only modify the parametrization lists in `conftest.py`. The recording files under `tests/test_commands/recordings/` are generated separately by running the tests against a live environment and should never be hand-crafted or generated by this agent.
400
+
378
401
#### 11a. Add to `ALL_ITEM_TYPES`
379
402
380
403
This list drives the comprehensive test suite (cd, ls, exists, rm, get, set, mkdir).
@@ -553,7 +576,7 @@ After completing all applicable steps, run these commands to verify each integra
| 10. Command support |`grep -n 'new_item' src/fabric_cli/core/fab_config/command_support.yaml`|Has definitions|
579
+
| 10. Command support |`grep -n 'new_item' src/fabric_cli/core/fab_config/command_support.yaml`|Always (check both supported_items and unsupported_items)|
0 commit comments