Summary
get returns only a default subset of a record's fields, gives no indication that the view is partial, and offers no flag to request more fields. list supports --fields, but get does not. Observed on the two models tested (sales_channel: 6 of 104 fields; product_variant: 31 of 179 fields); other models were not tested.
Environment
- fulfil-cli 0.3.0 (PyPI), Python 3.11, Linux
Steps to reproduce
fulfil sales_channel describe reports 104 fields for the model.
fulfil sales_channel get <id> --format json returns 6 keys: id, rec_name, created_at, updated_at, source, locations.
fulfil sales_channel get -h shows only --format. There is no --fields or --all option.
- The missing fields are readable through the list workaround:
fulfil sales_channel list --where '{"id": <id>}' --fields settings_json,configuration returned the requested fields, both of which are absent from get's default view.
- Same shape on a second model:
fulfil product_variant get <id> --format json returns 31 keys while fulfil product_variant describe reports 179 fields.
Why this matters
The package summary on PyPI describes the CLI as the "primary interface for humans and AI agents". During an investigation, an AI agent read a channel record with get, saw no settings-related fields in the output, and concluded the setting it was looking for was not exposed through the API. The record actually carried the answer in settings_json, reachable only through the list --fields workaround. A silently partial default view is hazardous for agents, which may treat the returned record as the complete record.
Suggested fixes
- Support
--fields on get, matching list, and print a notice on every partial get, for example: showing 6 of 104 fields; use --fields to select more.
- Alternatively, return the full record when
--format json is in effect, since piped JSON output is typically consumed by machines rather than read in a terminal.
Summary
getreturns only a default subset of a record's fields, gives no indication that the view is partial, and offers no flag to request more fields.listsupports--fields, butgetdoes not. Observed on the two models tested (sales_channel: 6 of 104 fields;product_variant: 31 of 179 fields); other models were not tested.Environment
Steps to reproduce
fulfil sales_channel describereports 104 fields for the model.fulfil sales_channel get <id> --format jsonreturns 6 keys:id,rec_name,created_at,updated_at,source,locations.fulfil sales_channel get -hshows only--format. There is no--fieldsor--alloption.fulfil sales_channel list --where '{"id": <id>}' --fields settings_json,configurationreturned the requested fields, both of which are absent fromget's default view.fulfil product_variant get <id> --format jsonreturns 31 keys whilefulfil product_variant describereports 179 fields.Why this matters
The package summary on PyPI describes the CLI as the "primary interface for humans and AI agents". During an investigation, an AI agent read a channel record with
get, saw no settings-related fields in the output, and concluded the setting it was looking for was not exposed through the API. The record actually carried the answer insettings_json, reachable only through thelist --fieldsworkaround. A silently partial default view is hazardous for agents, which may treat the returned record as the complete record.Suggested fixes
--fieldsonget, matchinglist, and print a notice on every partialget, for example:showing 6 of 104 fields; use --fields to select more.--format jsonis in effect, since piped JSON output is typically consumed by machines rather than read in a terminal.