Examples
This page only references example files that currently exist in the uigraph-cli repository.
Repository example files
Full config example
examples/configs/.uigraph.yamlexamples/configs/.uigraph/openapi/storefront-sample.yamlexamples/configs/.uigraph/diagrams/login-flow/*examples/configs/.uigraph/diagrams/system-overview/*examples/configs/.uigraph/db/*examples/configs/.uigraph/queries/*examples/configs/.uigraph/tests/*
CI/CD examples
examples/ci-cd/github-actions.yml— sync on branch pushes,uigraph-cli releaseon tagsexamples/ci-cd/github-actions-advanced.ymlexamples/ci-cd/gitlab-ci.yml
API specification examples
examples/specs/openapi/booking-service.yamlexamples/specs/openapi/payment-api.yamlexamples/specs/openapi/web-app-api.yamlexamples/specs/openapi/mobile-api.yamlexamples/specs/graphql/schema.graphqlexamples/specs/grpc/analytics.proto
1) Minimal service
version: 1
service:
name: Mobile API
category: Mobile
description: Backend API for mobile applications
repository:
provider: bitbucket
url: https://bitbucket.org/company/mobile-api
2) Service with APIs
version: 1
service:
name: Analytics Service
category: Data
description: Real-time analytics processing and aggregation
repository:
provider: gitlab
url: https://gitlab.com/company/analytics-service
apis:
- name: analytics-graphql
type: graphql
path: ./specs/schema.graphql
- name: analytics-grpc
type: grpc
path: ./specs/analytics.proto
3) Service with Mermaid context
architectureDiagrams:
- name: Checkout Context Diagram
path: ./diagram-checkout.mmd
contextPath: ./context-checkout.json
4) Service with test packs
testPacks:
- name: checkout-regression
type: regression
testCases:
- type: api
title: apply-coupon returns 200
order: 1
apiGroupName: checkout-api
operationId: applyCoupon
expectedStatusCode: 200
requestTemplate: '{"code":"SAVE20"}'
isCritical: false
5) Service with multiple databases
databases:
- name: Core PostgreSQL Database
dbType: PostgreSQL
dialect: postgres
schemaPath: ./postgresql-core.sql
- name: Event MongoDB Database
dbType: MongoDB
dialect: mongodb
schemaPath: ./mongodb-events.json
6) Service with saved queries
Inline queries and external queryFiles are merged. Each query links to a databases[].name.
databases:
- name: ecommerce
dbType: MySQL
dialect: mysql
schemaPath: ./ecommerce-schema.sql
queries:
- name: orphaned-orders
database: ecommerce
queryText: "SELECT * FROM orders WHERE customer_id IS NULL"
tags: [data-quality]
queryFiles:
- ./.uigraph/queries/reporting.yaml
7) Test pack with an external test case file
Inline testCases and an external testCasesPath are merged into the same pack.
testPacks:
- name: Adapter Smoke
type: smoke
testCases:
- title: Register user returns 201
type: api
order: 1
apiGroupName: checkout-api
operationId: registerUser
expectedStatusCode: 201
testCasesPath: ./.uigraph/tests/adapter-smoke.yaml
8) Combined all-options example
version: 1
service:
name: One Service All Options
category: Backend
description: Single fixture combining APIs, diagrams, tests, and databases.
repository:
provider: github
url: https://github.com/example/one-service-all-options.git
apis:
- name: public-api
type: openapi
path: ./openapi-public.yaml
architectureDiagrams:
- name: Shape Context Diagram
path: ./diagram-shape.mmd
contextPath: ./context-shape.json
testPacks:
- name: smoke-pack
type: smoke
testCases:
- type: manual
title: smoke checkout path
order: 1
stepsList:
- action: Complete checkout with valid inputs
expectedResult: Checkout succeeds
expectedOutcome: Order is confirmed
requiresEvidence: true
isCritical: true
databases:
- name: Core MySQL Database
dbType: MySQL
dialect: mysql
schemaPath: ./mysql-core.sql
9) Service dependencies
direction is required on every entry: downstream means this service calls the
target, upstream means the target calls this service.
dependencies:
- name: payments-charges
service: Payments Provider
direction: downstream
type: http
criticality: hard
description: Charges customer cards through the payments provider.
apiGroupName: payments-api
apiEndpointNames:
- createCharge
- name: mobile-order-feed
service: Mobile App
direction: upstream
criticality: soft
description: The mobile app reads the order feed from this service.
10) Cost tags
Present means the config owns the full set — unlisted rules are deleted on the next sync.
costTags:
- key: team
value: checkout
- key: Service
value: booking-api
11) Timeline sources
timeline:
decisions:
paths:
- docs/adr/*.md
- docs/decisions/*.md
incidents:
paths:
- docs/postmortems/*.md
releases:
# Omit this if the pipeline runs `uigraph-cli release` — both write the same
# release event and would overwrite each other.
changelogPath: CHANGELOG.md
12) Test case with reference screenshots
testPacks:
- name: checkout-smoke
type: smoke
testCases:
- type: manual
title: checkout success path
order: 1
stepsList:
- action: Open checkout and submit a valid card
expectedResult: Payment is accepted
screenshots:
- ./.uigraph/tests/screenshots/checkout-confirmation.png
13) ML projects from MLflow
ml:
- name: Recommendations
type: model
source:
type: mlflow
urlEnv: MLFLOW_URL
tokenEnv: MLFLOW_TOKEN
models:
- name: feed-ranker
problemType: ranking
Tips
- Start from
examples/configs/.uigraph.yamlif you want one realistic end-to-end sample. - Add OpenAPI
operationIdvalues when your test cases need to target specific endpoints. - Keep example file paths repository-relative so dry-run and CI behave the same way.