GraphQL Schema
The GraphQL API is served at POST /graphql via Apollo Server 4.9.5 on the API Gateway. Authentication is required (Bearer JWT or session cookie).
All operations verified at commit 4b572c2 from services/api-gateway/src/schema.ts.
Custom Scalars
| Scalar | Description |
|---|---|
DateTime |
ISO 8601 timestamp |
JSON |
Arbitrary JSON object |
Queries
Customer Data
customer(id: ID!): Customer
customers(filter: CustomerFilter, pagination: PaginationInput): CustomerConnection!
Account Data
account(id: ID!): Account
accounts(customerId: ID, filter: AccountFilter, pagination: PaginationInput): AccountConnection!
Transaction Data
transaction(id: ID!): Transaction
transactions(
accountId: ID
customerId: ID
filter: TransactionFilter
pagination: PaginationInput
): TransactionConnection!
Insights and Recommendations
insight(id: ID!): Insight
insights(
customerId: ID
filter: InsightFilter
pagination: PaginationInput
): InsightConnection!
recommendation(id: ID!): Recommendation
recommendations(
customerId: ID
status: ApprovalStatus
pagination: PaginationInput
): RecommendationConnection!
Agent Tasks
task(id: ID!): AgentTask
tasks(status: TaskStatus, pagination: PaginationInput): TaskConnection!
activeTasks: [AgentTask!]!
Workflows
workflow(id: ID!): Workflow
workflows(pagination: PaginationInput): WorkflowConnection!
workflowRuns(workflowId: ID, pagination: PaginationInput): WorkflowRunConnection!
Scenario Simulation
scenarioRun(id: ID!): ScenarioRun
scenarioRuns(
customerId: ID
status: ScenarioStatus
pagination: PaginationInput
): ScenarioRunConnection!
scenarioPresets: [ScenarioPresetInfo!]!
SME Guidance
guidanceItem(id: ID!): GuidanceItem
guidanceItems(filter: GuidanceFilter, pagination: PaginationInput): GuidanceItemConnection!
guidanceSummary(customerId: ID): GuidanceSummary!
customerGuidance(customerId: ID!): [GuidanceItem!]!
Credit Line Management
creditLineProposal(id: ID!): CreditLineProposal
creditLineProposals(
filter: CreditProposalFilter
pagination: PaginationInput
): CreditLineProposalConnection!
creditPortfolioSummary: CreditPortfolioSummary!
customerCreditProposals(customerId: ID!): [CreditLineProposal!]!
Portfolio Analytics
portfolioMetrics: PortfolioMetrics!
Mutations
Agent Task Operations
createTask(input: CreateTaskInput!): AgentTask!
executeTask(input: CreateTaskInput!): AgentTask!
cancelTask(id: ID!): AgentTask
Recommendation Review
reviewRecommendation(id: ID!, input: ReviewRecommendationInput!): Recommendation!
Human approval is required for all credit, retention, and treasury actions. The ReviewRecommendationInput includes an approved boolean and optional notes.
Workflow Execution
triggerWorkflow(workflowId: ID!, context: JSON): WorkflowRun!
Scenario Simulation
runScenario(input: RunScenarioInput!): ScenarioRun!
cancelScenario(id: ID!): ScenarioRun
SME Guidance
acknowledgeGuidance(id: ID!): GuidanceItem!
dismissGuidance(id: ID!, reason: String): GuidanceItem!
refreshGuidance(customerId: ID!): [GuidanceItem!]!
Credit Line Adjuster
approveCreditProposal(id: ID!, input: ReviewCreditProposalInput!): CreditLineProposal!
rejectCreditProposal(id: ID!, input: ReviewCreditProposalInput!): CreditLineProposal!
requestCreditReview(customerId: ID!): CreditLineProposal
runPortfolioCreditReview: CreditPortfolioSummary!
Subscriptions
Real-time updates via GraphQL subscriptions:
taskUpdated(taskId: ID!): AgentTask!
insightCreated: Insight!
recommendationCreated: Recommendation!
scenarioCompleted(scenarioId: ID): ScenarioRun!
guidanceCreated(customerId: ID): GuidanceItem!
creditProposalCreated: CreditLineProposal!
Connection Types
All list queries return Connection types following the Relay specification pattern:
type CustomerConnection {
edges: [CustomerEdge!]!
pageInfo: PageInfo!
totalCount: Int!
}
type CustomerEdge {
node: Customer!
cursor: String!
}
type PageInfo {
hasNextPage: Boolean!
hasPreviousPage: Boolean!
startCursor: String
endCursor: String
}
Implemented in services/api-gateway/src/schema.ts at commit 4b572c2.