-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyfly.yaml
More file actions
95 lines (84 loc) · 3.05 KB
/
Copy pathpyfly.yaml
File metadata and controls
95 lines (84 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Copyright 2026 Firefly Software Foundation
#
# PyFly application configuration. Values override the property-driven
# defaults activated by ``enable_core_stack``. Anything in the
# environment (FLYCANON_*) wins over this file because pydantic-settings
# is loaded after pyfly merges its config sources.
pyfly:
# Web tier -- FastAPI adapter, default ASGI server, /api as base.
web:
enabled: true
base-path: /api
server:
enabled: true
host: 0.0.0.0
port: 8500
# pyfly v26.06 runs actuator + admin on a dedicated management port (9090)
# by default. Collapse it onto the application port so /actuator/* and /admin
# stay reachable on the single business port (Spring management.server.port
# parity). Set to -1 to disable, or a distinct port to split them out.
management:
server:
port: 8500
# Observability -- Prometheus metrics + OpenTelemetry tracing.
observability:
enabled: true
metrics:
enabled: true
tracing:
enabled: true
service-name: flycanon
# Actuator -- /actuator/health, /actuator/info, /actuator/metrics
actuator:
enabled: true
metrics:
enabled: true
# Admin dashboard -- embedded management UI at /admin/. Read-only by
# default; toggle ``require-auth: true`` before exposing it to the
# public internet.
admin:
enabled: true
path: /admin
title: "flycanon -- PyFly Admin"
theme: auto
require-auth: false
refresh-interval: 5000
# AOP -- required for @authorize / @cacheable / @retry decorators.
aop:
enabled: true
# Resilience -- circuit breaker + retry for outbound LLM and webhook
# calls.
resilience:
enabled: true
# CQRS -- CommandBus + QueryBus + handler scan.
cqrs:
enabled: true
# Cache -- Redis-backed (falls back to in-memory if Redis URL is unset).
cache:
enabled: true
# EDA -- knowledge-lifecycle event bus, wired by pyfly's
# EdaAutoConfiguration. Default provider is ``postgres`` which uses
# LISTEN/NOTIFY + the durable ``pyfly_eda_outbox`` table; flycanon
# already runs Postgres so no extra broker is required. Override
# with ``FLYCANON_EDA_ADAPTER`` (memory | postgres | redis | kafka).
eda:
enabled: true
provider: ${FLYCANON_EDA_ADAPTER:postgres}
# Comma-separated destinations the in-process subscriber listens
# to. The worker container overrides this to ``flycanon.ingest``
# alone so the offset advances independently.
destinations: ${FLYCANON_EDA_DESTINATIONS:flycanon.ingest,flycanon.knowledge,flycanon.audit}
group: ${FLYCANON_EDA_GROUP:flycanon-workers}
postgres:
dsn: ${FLYCANON_DATABASE_URL:postgresql+asyncpg://canon:canon@localhost:5432/flycanon}
channel: flycanon_eda
redis:
url: ${FLYCANON_REDIS_URL:redis://localhost:6379/0}
kafka:
bootstrap-servers: ${FLYCANON_KAFKA_BOOTSTRAP:localhost:9092}
# Persistence -- async SQLAlchemy with Alembic migrations on startup
# if ``RUN_MIGRATIONS=true``.
data:
relational:
enabled: true
url: ${FLYCANON_DATABASE_URL:postgresql+asyncpg://canon:canon@localhost:5432/flycanon}