Skip to content

Services & Components

Detailed description of every service and application in the In Falcone platform.

Applications

Control Plane (apps/control-plane/)

The central API service that exposes the platform's REST surface.

PropertyValue
RuntimeNode.js 20+ ESM
Port8080
Package@in-falcone/control-plane

Responsibilities:

  • Exposes /v1/* public API families (tenants, workspaces, auth, IAM, etc.)
  • Delegates lifecycle operations to the provisioning orchestrator
  • Enforces contextual authorization (tenant/workspace scope)
  • Serves OpenAPI documentation at /control-plane/openapi
  • Emits audit events for every mutating operation

Key Dependencies:

  • @in-falcone/internal-contracts — Shared schemas
  • @in-falcone/adapters — Provider adapters
  • @in-falcone/provisioning-orchestrator — Lifecycle logic
  • PostgreSQL, Keycloak, Kafka

Web Console (apps/web-console/)

The management dashboard for platform operators and tenant administrators.

PropertyValue
RuntimeReact 18 + TypeScript
BuildVite
StylingTailwind CSS + shadcn/ui
Port3000
Package@in-falcone/web-console

Features:

  • Tenant and workspace management
  • Database browsing (PostgreSQL tables, MongoDB collections)
  • Function deployment and invocation
  • Audit log viewer
  • Health and metrics dashboards
  • Keycloak-based authentication (OIDC)

Configuration:

  • Auth realm: in-falcone-platform
  • Auth client: in-falcone-console (public SPA)
  • All settings configurable via VITE_CONSOLE_* environment variables

Core Services

Adapters (services/adapters/)

The provider abstraction layer that normalizes access to all infrastructure components.

Package@in-falcone/adapters

Adapter Modules:

ModuleProviderOperations
keycloak-admin.mjsKeycloak 26.1Realm, client, role, user management
openwhisk-admin.mjsOpenWhisk 2.0Namespace, action, package, trigger management
postgres-admin.mjsPostgreSQL 17.2Schema, table, RLS policy management
mongodb-admin.mjsMongoDB 8.0Database, collection, index management
kafka-admin.mjsKafka 3.9Topic, ACL, consumer group management
storage-admin.mjsMinIO S3Bucket, object, lifecycle management

Key Design Decisions:

  • Reserved realm IDs: master, in-falcone-platform (protected from tenant operations)
  • All operations are idempotent and return normalized results
  • Audit envelopes emitted at the adapter boundary
  • Supports both internal and external provider bindings

Internal Contracts (services/internal-contracts/)

Machine-readable JSON schemas that define the platform's behavioral contracts.

Package@in-falcone/internal-contracts

Contract Categories:

SchemaPurpose
domain-model.jsonCore entity definitions (tenant, workspace, app, etc.)
deployment-topology.jsonHelm values structure, bootstrap payloads, environment profiles
authorization-model.jsonContextual authorization rules and scope enforcement
internal-service-map.jsonService dependency graph and allowed interactions
public-api-taxonomy.jsonAPI route families and versioning rules
observability-*.jsonMetrics, dashboards, health checks, alerts, audit pipeline

These contracts are:

  • Validated by CI scripts in scripts/
  • Used as source of truth for code generation
  • Referenced by all services for consistent behavior

Provisioning Orchestrator (services/provisioning-orchestrator/)

Manages the lifecycle of tenants, workspaces, and managed resources.

Package@in-falcone/provisioning-orchestrator

Operations:

  • Tenant creation: Keycloak realm, PostgreSQL schema, MongoDB database, Kafka topics
  • Workspace creation: Scoped resources within a tenant
  • Plan assignment: Quota enforcement and capability activation
  • Configuration export/import: Cross-environment migration
  • Preflight validation: Verify deployment compatibility
  • Reprovisioning: Reconcile configuration drift

Workflow Pattern:

Request → Validate → Collect current state → Plan changes →
  Apply (per-adapter) → Emit audit → Return result

Gateway Config (services/gateway-config/)

APISIX gateway route definitions and scope enforcement rules.

Key Files:

  • base/gateway.yaml — Core gateway configuration
  • base/public-api-routing.yaml — API route family definitions
  • tests/plugins/ — Lua-based scope enforcement tests

Route Families:

PrefixTargetAuth
/v1/platform/*Control PlanePlatform admin
/v1/tenants/*Control PlanePlatform admin
/v1/workspaces/*Control PlaneTenant/workspace scope
/v1/auth/*KeycloakPublic / authenticated
/v1/iam/*Control PlanePlan-capability-gated
/v1/postgres/*Control PlaneWorkspace scope
/v1/mongo/*Control PlaneWorkspace scope
/v1/events/*Event GatewayWorkspace scope
/v1/functions/*Control PlaneWorkspace scope
/v1/storage/*Control PlaneWorkspace scope

Event Gateway (services/event-gateway/)

Kafka event publishing bridge that connects workspace operations to the event streaming layer.

Package@in-falcone/event-gateway

Features:

  • Authenticated event publishing per workspace
  • Topic routing based on event type
  • Kafka integration with configurable brokers
  • Correlation ID propagation
  • Audit event emission

Realtime Gateway (services/realtime-gateway/)

WebSocket subscription server for realtime event delivery.

Features:

  • Keycloak JWT authentication (JWKS validation)
  • Channel-based subscriptions (PostgreSQL, MongoDB, custom)
  • Operation filtering (INSERT, UPDATE, DELETE)
  • Kafka-backed event consumption
  • Audit topics: console.realtime.auth-granted, auth-denied, session-suspended, session-resumed

Audit Service (services/audit/)

Audit event processing pipeline that consumes events from Kafka and stores them.

Package@in-falcone/audit

Features:

  • Kafka consumer for audit topics
  • Correlation surface for cross-service tracing
  • Query surface for audit log retrieval
  • Export surface for compliance reporting
  • Normalized event schema with actor, resource, action, outcome

CDC Bridges

PostgreSQL CDC Bridge (services/pg-cdc-bridge/)

Captures PostgreSQL WAL changes and publishes them to Kafka.

PropertyValue
Imagefalcone/pg-cdc-bridge:1.0.0
Port8080
Kafka Topicconsole.pg-capture.lifecycle

Configuration:

  • WAL monitoring with configurable thresholds
  • CDC cache with TTL (30s default)
  • Max events per second: 1000

MongoDB CDC Bridge (services/mongo-cdc-bridge/)

Captures MongoDB change stream events and publishes them to Kafka.


Backup Status (services/backup-status/)

Backup monitoring and restoration service.

Package@in-falcone/backup-status

Features:

  • Backup collection tracking across all subsystems
  • Restore confirmation with MFA verification
  • Pre-check validation before restoration
  • Operational hours enforcement
  • Adapter-based backup collection (PostgreSQL, MongoDB, S3, Keycloak)

Secret Audit Handler (services/secret-audit-handler/)

Tracks and audits all secret access operations in the Vault + ESO pipeline.


Infrastructure Components

ComponentTechnologyPurpose
APISIXApache APISIX 3.10API Gateway (routing, auth, rate limiting)
KeycloakKeycloak 26.1Identity and Access Management
PostgreSQLPostgreSQL 17.2Primary relational database
MongoDBMongoDB 8.0Document database
KafkaApache Kafka 3.9Event streaming and audit
OpenWhiskApache OpenWhisk 2.0Serverless function runtime
MinIOMinIO 2026.3S3-compatible object storage
VaultHashiCorp Vault OSSSecret management
ESOExternal Secrets OperatorKubernetes secret synchronization
PrometheusPrometheus 3.2Metrics collection and alerting

Released under the MIT License.