Types
GraphQL Type Definitions
This section documents the object types, interfaces, and other type definitions in the pyck GraphQL API. Understanding these types is essential for constructing and interpreting API requests and responses.
Core Types
Management Types
Device: Physical devices and equipment (scanners, printers, terminals)
Location: Physical or logical locations within facilities
DeviceLocation: Device-to-location assignment relationships
DeviceUser: Device-to-user assignment relationships
AccessPolicy: Access control policies for resource permissions
Company: Company/tenant entity for organizational boundaries
Customer: Customer entity for order fulfillment
DataType: JSON schema definition for entity data validation
Supplier: Supplier entity for procurement operations
Group: User groups for organizing users and roles
Role: Roles for role-based access control (RBAC)
User: User entity for authentication and authorization
UserProfile: Comprehensive user profile with tenant and role information
UserRoleTuple: Deprecated - Role assignment within a tenant (use UserTenants)
UserTenants: Tenant associations with role assignments for multi-tenant access
Inventory Types
InventoryCollection: Collections of coordinated inventory movements
InventoryItem: Products and items in your inventory
InventoryItemSet: Collections of inventory items grouped by SKU
ItemMovement: Movement of individual inventory items
CollectionMovement: Individual movements within coordinated inventory operations
Repository: Storage locations (warehouses, bins, pallets, etc.)
RepositoryMovement: Movement of repository-level inventory
Stock: Inventory levels and movements
Supplier: Supplier entity for procurement operations
Tenant: Tenant entity for multi-tenancy support
TemporalMetadata: Key-value metadata for Temporal workflows
TemporalWorkflow: Temporal workflow execution information
Transaction: Inventory transaction records
Picking Types
PickingOrder: Order for picking items from warehouse
PickingOrderItem: Individual items within picking orders
Receiving Types
ReceivingInbound: Inbound shipment for receiving
ReceivingInboundItem: Individual items within inbound shipments
Workflow Types
Workflow: Workflow definition for automated processes
WorkflowEvent: Individual event in workflow execution history
WorkflowExecutionInfo: Detailed information about Temporal workflow executions
WorkflowMemo: Structured metadata for workflow executions
WorkflowSignal: Signals that trigger workflow execution
TemporalWorkflow: Temporal workflow execution information
TemporalMetadata: Key-value metadata for Temporal workflows
GetAssigneeResponse: Response containing workflow assignee information
SetAssigneeResponse: Response containing updated assignee information
File Types
File: Files uploaded and associated with entities
System Types
Event: Event schema/template for event-driven architecture
KeyValue: Flexible key-value store for configuration and custom data
PageInfo: Pagination information for connections
Common Patterns
Connection Types
Many list queries return connection types that follow the Relay connection specification:
For example, InventoryItemConnection contains InventoryItemEdge objects, each with a node (the actual InventoryItem) and a cursor for pagination.
Relationship Connections
All entity relationship fields also return Connection objects, enabling pagination, filtering, and ordering on nested relationships. For example:
See the Relay Connections Migration Guide for details on using connections for relationship fields.
Input Types
Input types are used for mutation arguments:
For example, CreateInventoryItemInput is used for the createInventoryItem mutation.
Where Types
Filter types are used for the where argument in queries:
For example, InventoryItemWhereInput allows filtering inventory items by various criteria.
OrderBy Types
Sorting types are used for the orderBy argument in queries:
For example, InventoryItemOrderByInput allows sorting inventory items by various fields.
The Data Field
Many entity types include a data field of type Map, which stores flexible attributes as JSON. This allows for entity customization without schema changes.
The structure of the data field is validated using DataTypes, which are JSON Schema definitions that can be created and managed through the API.
Last updated
Was this helpful?
