Transforms shape data as it flows between operations. Every operation has a typed
input and output; a transform bridges two operations by converting one shape into
another - most commonly turning a system-specific record into a generic Record (or a
Record back into a system-specific shape), and, at the end of a pipeline, turning a
RecordSet into a terminal artifact such as a CSV or PDF.
- Typed in / typed out. Each transform declares an
InputType and an OutputType.
The pipeline type-checker uses those types to decide whether one step can feed the
next: a step is only valid if the upstream output can reach the downstream input,
directly or through a transform. This is what lets Maestro compose a multi-step
transient pipeline safely, without the model ever seeing the intermediate records.
Record is the lingua franca. Most connectors ship a matched pair per entity:
a …ToRecord transform (system shape → generic Record) and a RecordTo… transform
(generic Record → system shape). A Record from one system can therefore be re-shaped
and handed to another, which is how cross-system pipelines are built.
RecordSet for collections. Iterable operations produce many records; RecordSet
transforms fan those in and out (e.g. RecordSetToRecord, RecordToRecordSet).
- Terminal transforms convert a
RecordSet into a returnable artifact - CSV or PDF -
so a pipeline yields a single file rather than streaming raw records back to the model.
Authoring notes
- Naming convention.
<Source>To<Target>; the direction is readable from the name.
<Entity>ToRecord is inbound (system → generic), RecordTo<Entity> is outbound
(generic → system).
- JavaScript field mapping. Field-level mapping can be expressed inline with
TransformJS / JSFilter (a small JS engine), with helpers such as toBase64 for
encoding.
- Versioning. Like connectors and operations, a transform carries
[ExportMetadata("Version")]; bump the patch component on any metadata change so
StewardBus rebuilds it.
This catalog is a snapshot
The authoritative, live list of transforms available to a pipeline is what the
pipeline_discover tool returns for your enabled resources. The tables below catalog
the transforms packaged with the MCP-enabled connectors, grouped by system and shown
as Input → Output.
Physical access control
S2 (NetBox)
Inbound (→ Record) |
Outbound (Record →) |
S2PersonToRecord (Person) · S2PersonAccessToRecord (PersonAccess) · S2PersonCardAccessToRecord · S2CredentialToRecord (Credential) · AccessToRecord · AccessLevelToRecord · AccessLevelWebToRecord · AccessLevelGroupToRecord · AccessRightToRecord · ActivityToRecord · EventToRecord · EventTypeToRecord · PortalToRecord · PortalGroupToRecord · ReaderToRecord · ReaderGroupToRecord · S2ElevatorToRecord · S2FloorToRecord · PartitionToRecord · CardFormatToRecord · TimeSpecToRecord · TimeSpecGroupToRecord · ThreatLevelToRecord · AlarmInputToRecord · AlarmOutputToRecord · MercuryBoardToRecord · MercuryPanelToRecord · NetworkNodeToRecord |
RecordToS2Person (Person) · RecordToS2PersonSearch (PersonSearch) · RecordToS2Credential (Credential) · RecordToAccess · RecordToAccessSearch · RecordToAccessLevel · RecordToAccessLevelWeb · RecordToAccessLevelGroup · RecordToActivity · RecordToEventType · RecordToPortal · RecordToPortalGroup · RecordToReader · RecordToReaderGroup · RecordToTimeSpec · RecordToTimeSpecGroup · RecordToThreatLevel · RecordToAlamInput · RecordToAlarmOutput · RecordToMercuryBoard · RecordToMercuryPanel · RecordToNetworkNode |
Access-analytics helpers (used by the fatigue/last-access features): S2PersonAccessToAccessSpan, AccessSpanToRecordSet, AccessSpanToAggRecordSet, CalendarFatigue and IntervalFatigue (AccessSpan → AccessSpan), and EntrySorter.
OpenPath
Inbound (→ Record) |
Outbound (Record →) |
UserToRecord · CredentialToRecord · CredentialTypeToRecord · CredentialActionTypeToRecord · CardFormatToRecord · GroupToRecord · RoleToRecord · ReaderToRecord · SiteToRecord · ZoneToRecord · OrganizationToRecord (Org) · ScheduledEventToRecord · AccessActivityEventToRecord · EventDataToRecord · AuditReportToRecord (Audit) · CustomFieldToRecord |
RecordToUser · RecordToCredential |
Genetec (Security Center)
Inbound (→ Record) |
Outbound (Record →) |
CardholderToRecord · CredentialToRecord · CredentialFormatToRecord · AccessHistoryToRecord · VisitorToRecord · DeviceToRecord · GroupProvisionToRecord · CustomFieldSystemEntityToRecord · DataToRecord |
RecordToCardholder · RecordToGroupProvision · RecordToCredentialUpdateState (→ Credential) |
C-CURE 9000
Inbound (→ Record) |
Outbound (Record →) |
PersonToRecord · ClearanceToRecord · PersonnelTypeToRecord · CustomFieldToRecord · ChuidFormatToRecord · JournalMessageToRecord · EventToRecord |
RecordToPerson · RecordToJournalMessage |
Brivo
Inbound (→ Record) |
Outbound (Record →) |
BrivoUserToRecord (User) · AccessPointToRecord · BrivoGroupToRecord (Group) · BrivoSiteToRecord (Site) · BrivoAccessEventToRecord (AccessEvent) · BrivoAuditToRecord (Audit) · BrivoCredentialFormatToRecord · BrivoCustomFieldToRecord · SubscriptionToRecord |
RecordToBrivoUser (User) · RecordToAccessPoint · RecordToSubscription |
Otis (elevator dispatch)
Inbound (→ Record) |
Outbound (Record →) |
DirectCallToRecord · OtisDECToRecord · SwipeEventToRecord · AuditMessageToRecord (OtisMessage) |
RecordToDirectCall · RecordToOtisDEC · RecordToSwipeEvent |
ThyssenKrupp (elevator dispatch)
Inbound (→ Record) |
Outbound (Record →) |
CarCallToRecord · KioskToRecord · SwipeEventToRecord · DispatchEventToRecord (TKEMessage) |
RecordToCarCall · RecordToSwipeEvent · RecordToDispatchEvent (TKEMessage) |
Google Workspace
Inbound (→ Record) |
Outbound (Record →) |
UserToRecord · GroupToRecord · MemberToRecord · OrganizationUnitToRecord · DriveFileToRecord · DriveFileContentToRecord · GmailMessageToRecord · GmailMessageContentToRecord · SheetRowToRecord · SheetValuesToRecord · SheetFormatToRecord |
RecordToGmailDraft (DraftGmailMessageRequest) · RecordToSheetRow · RecordToSheetValues · RecordToSheetFormat |
Salesforce
Inbound (→ Record) |
Outbound (Record →) |
AccountToRecord · ContactToRecord · CaseToRecord · ContractToRecord · AssetToRecord · TaskRayProjectToRecord · TaskRayTaskToRecord |
RecordToAttachment (Attachment) |
Jira
Inbound (→ Record) |
Outbound (Record →) |
IssueToRecord · UserToRecord |
RecordToIssue · RecordToComponent |
Inbound (→ Record) |
Outbound (Record →) |
PageToRecord · SectionToRecord · SiteInfoToRecord |
RecordToSection |
Everbridge (critical-event management)
Inbound (→ Record) |
Outbound (Record →) |
ContactToRecord · ContactAttributeToRecord · ContactPathToRecord · GroupToRecord · IncidentToRecord · IncidentTemplateToRecord · LocationToRecord · ReaderToRecord · NotificationStatusToRecordSet (→ RecordSet) |
RecordToContact · RecordToIncident (IncidentCreate) · RecordToLocation · RecordToNotification · RecordToReader |
Workday (HCM)
Inbound (→ Record) |
Outbound (Record →) |
WorkerToRecord · OtherIdToRecord · TimeEntryToRecord |
RecordToWorker · RecordToOtherId · RecordToTimeEntry |
Zoom (conferencing)
Inbound (→ Record) |
Outbound (Record →) |
UserToRecord · GroupToRecord · MeetingToRecord · ReservationToRecord · ReservationActionToRecord · EventMessageToRecord |
RecordToReservationAction |
ODBC (RDBMS)
Inbound (→ Record) |
Outbound (Record →) |
DBTupleToRecord (DBTuple) |
RecordToDBTuple · RecordSetToDbTuple (RecordSet → DBTuple) |
File
Inbound (→ Record) |
Outbound (Record →) |
FileInfoToRecord · DirectoryInfoToRecord |
RecordToDirectoryInfo |
Composer (self-introspection)
Shape Composer's own catalog into records - used to answer "what connectors / resources /
operations / transforms are available?"
ConnectorToRecord · ResourceToRecord · OperationToRecord · TransformToRecord · ServiceToRecord · IntegrationToRecord · FilterToRecord · UserToRecord (all → Record).
Utility & terminal (Standard)
System-agnostic building blocks available to every pipeline.
| Transform |
Shape |
Purpose |
Identity |
object → object |
Pass-through (universal; satisfies any step boundary) |
RecordToRecord |
Record → Record |
Field-level reshape/rename via JS mapping |
RecordToRecordSet / RecordSetToRecord / RecordSetToRecordSet |
between Record and RecordSet |
Fan collections in/out |
JsonObjectToRecord |
Record → Record |
Parse a JSON payload into a record |
JsonArrayToRecordSet |
Record → RecordSet |
Parse a JSON array into a record set |
ParameterSetToRecord |
ParameterSet → Record |
Turn call parameters into a record |
ImageRecordToImageRecord |
Record → Record |
Image record reshape |
PDFToRecordSet |
PDF → RecordSet |
Extract rows from a PDF |
RecordToCSVString |
Record → CSVString |
Terminal - record to CSV |
RecordSetToCSVStringSet |
RecordSet → CSVStringSet |
Terminal - record set to CSV |
RecordSetToPDF |
RecordSet → PDF |
Terminal - record set to PDF |