| name | ppds-metadata |
| description | Browse and author Dataverse schema with PPDS — list entities/tables, inspect attributes/columns and relationships, create or update tables, columns, relationships, alternate keys, and global choices/option sets, compare schemas across environments, and adjust views and forms. Use when the user wants to know what columns or relationships an entity has, create or modify a table or column, manage option sets or keys, diff schema between environments, or edit a view or form definition. Read ppds-core first for auth and safety rules. |
| license | MIT |
| metadata | {"ppds_cli_version_tested":"1.2.0","ppds_mcp_version_tested":"1.0.0"} |
PPDS Metadata — schema as a first-class surface
Exact flags: references/cli-metadata.md,
references/cli-schema.md,
references/cli-views.md,
references/cli-forms.md.
Surface routing: browsing is CLI or MCP; schema authoring is one of
the few places MCP is unusually strong — the released server ships typed
authoring tools (ppds_metadata_create_table, ppds_metadata_add_column,
ppds_metadata_update_column, ppds_metadata_create_relationship,
ppds_metadata_create_choice, ppds_metadata_create_key,
ppds_metadata_add_option_value, and update variants). In a terminal the
CLI equivalents live under the ppds metadata subgroups: entity, attribute,
relationship, key, optionset.
Browsing schema
ppds metadata entities -f json
ppds metadata entity account
ppds metadata attributes account
ppds metadata relationships account
ppds metadata keys account
ppds metadata optionsets
ppds metadata optionset <name>
MCP equivalents: ppds_metadata_entities, ppds_metadata_entity,
ppds_data_schema (per-entity field list with option values).
Authoring schema (mutations — safety model applies)
The authoring verbs hang off the noun subgroups; see
references/cli-metadata.md for each
subcommand's exact flags before generating a command — column/table creation
has many typed options.
ppds metadata entity create --help
ppds metadata attribute create --help
ppds metadata relationship create --help
ppds metadata key create --help
After metadata changes, publish: ppds metadata publish <names> (alias for
ppds publish --type entity).
Note: the table, column, and choice subgroups are deprecated
aliases of entity, attribute, and optionset — prefer the canonical names.
Cross-environment schema comparison
ppds schema compare --help
Use this before solution import to spot drift between source and target.
Views and forms (maker-portal gap fillers)
Saved queries (views) and system forms are editable from the CLI — column
layout, sort, filter, raw FetchXML on views; tabs/sections/fields on forms.
These write systemquery/systemform records: unmanaged-layer mutations,
so confirm the environment first, and managed components will refuse edits
(View.ManagedComponentNotEditable).
ppds views list --entity account
ppds views set-filter --entity account --view "Active Accounts" --filter-file ./filter.xml
ppds forms list --entity account
Common mistakes (do not invent these)
| Wrong | Correct |
|---|
ppds metadata list-entities | ppds metadata entities |
ppds metadata entity account --attributes | ppds metadata attributes account |
ppds metadata create-table | ppds metadata entity create ... (check --help for flags) |
| Editing managed views/forms | edit in the unmanaged source environment instead |
| Forgetting publish | metadata edits need ppds metadata publish <names> (or ppds publish) to take effect in apps |
Skill boundaries
| Need | Use instead |
|---|
| The data inside the tables | ppds-query (reads/DML), ppds-data (bulk) |
| Ship schema changes to another environment | ppds-solutions-alm |
| Web resource files referenced by forms | ppds-webresources |
| Auth, environment selection, error codes | ppds-core |