metadata
Connection metadata introspection — record types, sObjects, tables, and field/column definitions fetched live from the remote system through a configured Celigo connection.
REST API: no dedicated spec — metadata hits adaptor-specific paths under /v1/netsuite/metadata/…, /v1/salesforce/metadata/…, and the generic PUT /v1/connections/{_id}/metadata RDBMS bridge. See the specs index and connection.yml for the underlying connection shape.
celigo metadata <subcommand> <connectionId> [entityType] [flags]Supports all global flags. Auto-detects the adaptor from the connection's type — only netsuite, salesforce, and rdbms connections are supported.
Subcommands
types <connectionId>
List entity types on a connection (NetSuite record types + saved searches, Salesforce sObject types, or RDBMS tables).
fields <connectionId> <entityType>
List fields/columns for a single entity (NetSuite record type, Salesforce sObject, or RDBMS table).
celigo metadata types <connectionId>
List the entity types available on a live connection. The CLI first GETs the connection, reads its type, and then dispatches to the correct adaptor endpoint.
Signature
celigo metadata types <connectionId> [--refresh]Arguments
<connectionId>
string
Yes
Connection ID. Must resolve to a connection whose type is netsuite, salesforce, or rdbms.
Flags
--refresh
boolean
false
Bypass the server-side metadata cache and fetch fresh data from the remote system. Applied as ?refreshCache=true for NetSuite/Salesforce and as refreshCache: true in the PUT body for RDBMS.
Example
Corresponds to (dispatched by connection type):
NetSuite:
GET /v1/netsuite/metadata/suitescript/connections/{connectionId}/recordTypesandGET /v1/netsuite/metadata/suitescript/connections/{connectionId}/savedSearchesSalesforce:
GET /v1/salesforce/metadata/connections/{connectionId}/sObjectTypesRDBMS:
PUT /v1/connections/{connectionId}/metadatawith body{ "rdbms": { "type": "tables", "tables": "" }, "refreshCache": <bool> }
celigo metadata fields <connectionId> <entityType>
List fields (or columns) for a single entity. For Salesforce, the response includes related record types alongside the fields.
Signature
Arguments
<connectionId>
string
Yes
Connection ID (netsuite, salesforce, or rdbms).
<entityType>
string
Yes
The entity to inspect. NetSuite: record-type id (e.g. customer, salesorder). Salesforce: sObject API name (e.g. Account, Contact). RDBMS: fully qualified table name (e.g. analytics.public.orders).
Flags
--refresh
boolean
false
Bypass the cache and fetch fresh field metadata.
Example
Corresponds to (dispatched by connection type):
NetSuite:
GET /v1/netsuite/metadata/suitescript/connections/{connectionId}/recordTypes/{entityType}Salesforce:
GET /v1/salesforce/metadata/connections/{connectionId}/sObjectTypes/{entityType}RDBMS:
PUT /v1/connections/{connectionId}/metadatawith body{ "rdbms": { "type": "columns", "tables": "<entityType>" }, "refreshCache": <bool> }
Gotchas
Only three connection types are supported. The CLI pre-flights with
GET /v1/connections/{id}and rejects anything that isn'tnetsuite,salesforce, orrdbmswith:Connection <id> has type "<type>" — metadata is only supported for netsuite, salesforce, rdbms connections.--refreshinvalidates the cached metadata. Without it you get whatever the server cached on the last introspection. Pass it after a schema change in the remote system (new NetSuite custom field, new Salesforce custom object, new RDBMS column) to avoid stale pickers.NetSuite
typesmerges two endpoints. Record types and saved searches come back as a single list with a synthesized_metaTypecolumn (recordTypeorsavedSearch) so you can tell them apart.Salesforce
fieldsreturns fields and record types together. The response is an object with both — don't expect a flat array.RDBMS goes through the generic connection metadata bridge. NetSuite and Salesforce have dedicated
GETendpoints; RDBMS is aPUT /v1/connections/{id}/metadatawith ardbms.typeoftablesorcolumns. The verb isPUTby design, not a typo.RDBMS tables must be fully qualified. For Snowflake/BigQuery/Postgres the entity name must be
database.schema.table(or whatever the connection's default schema expects). If the call returns an empty column list, the CLI prints a yellow hint pointing at qualification and column-metadata permissions (e.g. BigQuerybigquery.tables.geton the dataset).The connection must be reachable. Metadata is fetched live — an offline or failing connection will return an error from the remote system, not an empty list. Run
celigo connections ping <id>first when in doubt.
Related
connections — the
<connectionId>argument; also where you configure the credentials the metadata calls ride on.imports — field pickers in import mappings consume the same metadata.
exports — export field selection (NetSuite record-type fields, Salesforce sObject columns, RDBMS table columns) mirrors what
metadata fieldsreturns.
Last updated
Was this helpful?