`ConnectorNode.store` keeps short strings per connector package in the
engine's database (`connector_state`, migration f8c3e5a91d27), so the nodes of
one package share them and `fluksio serve` needs nothing new: get, set and
delete, at most 64 kB a value and 256 keys a package. A superuser lists the
keys (never the values) and clears them through `/connectors/{node_type}/state`,
or under Stored state in a connector node's panel. Documented in the connector
contract.
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from fastapi import APIRouter
|
|
|
|
from fluksio.api.routes import (
|
|
ai,
|
|
alerts,
|
|
artifacts,
|
|
cloud,
|
|
connectors,
|
|
dashboards,
|
|
flavors,
|
|
flows,
|
|
login,
|
|
messages,
|
|
modules,
|
|
oauth,
|
|
observability,
|
|
panels,
|
|
private,
|
|
runs,
|
|
search,
|
|
secrets,
|
|
users,
|
|
utils,
|
|
workers,
|
|
)
|
|
|
|
api_router = APIRouter()
|
|
api_router.include_router(login.router)
|
|
api_router.include_router(users.router)
|
|
api_router.include_router(utils.router)
|
|
api_router.include_router(flavors.router)
|
|
api_router.include_router(flows.router)
|
|
api_router.include_router(flows.ws_router)
|
|
api_router.include_router(secrets.router)
|
|
api_router.include_router(connectors.router)
|
|
api_router.include_router(alerts.router)
|
|
api_router.include_router(dashboards.router)
|
|
api_router.include_router(panels.router)
|
|
api_router.include_router(messages.router)
|
|
api_router.include_router(modules.router)
|
|
api_router.include_router(observability.router)
|
|
api_router.include_router(runs.router)
|
|
api_router.include_router(artifacts.router)
|
|
api_router.include_router(workers.router)
|
|
api_router.include_router(search.router)
|
|
# Remote access through a portal. Always mounted; with no enrolment the
|
|
# endpoints only ever report that there is none.
|
|
api_router.include_router(cloud.router)
|
|
# Always mounted so the generated SDK stays the same shape; the endpoints
|
|
# themselves refuse to work unless MCP is switched on.
|
|
api_router.include_router(oauth.router)
|
|
|
|
|
|
# Always mounted like oauth, so the generated SDK keeps its shape; the
|
|
# endpoints refuse to work unless the private API is explicitly enabled.
|
|
api_router.include_router(private.router)
|
|
# The assistant. Always mounted for the same reason; without a provider
|
|
# configured the status says so and the chat answers 404.
|
|
api_router.include_router(ai.router)
|