Skip to content

EN Reference Project

Cavanshirpro edited this page Sep 19, 2026 · 1 revision

ProjectConfig: complete project fields

English · Türkçe · Languages / Diller

Scope: JSON API Forge 0.5.1 · Source review: 17 September 2026 · Language: English

These tables were generated from the Pydantic models and JSON Schema at the pinned commit. Usage guides: Projects and JSON.

“Required” means the field must be present in JSON; acceptance of null is a separate type rule. A Model() default creates that model using its documented defaults. Empty lists/objects are created separately for each instance. — means no default or no constraint for that column.

Cross-field validators apply in addition to the table: permission/public selection, URL/host safety, tenant/owner columns, cache/idempotency/transaction combinations, schema collisions and safe regex. JSON Schema validation alone does not replace forge validate. Unknown fields are rejected through extra="forbid".

ProjectConfig

Field Type Required Default Schema constraints
slug string Yes — —
name string Yes — —
version string No "0.5.1" —
enabled boolean No true —
api_prefix string | null No null —
docs_enabled boolean No true —
audit_enabled boolean No true —
cors_origins list[string] No ["*"] —
cors_methods list[string] No ["GET","POST","PUT","PATCH","DELETE","OPTIONS"] —
cors_headers list[string] No ["Authorization","Content-Type","X-API-Key","Idempotency-Key","X-Request-ID"] —
cors_expose_headers list[string] No ["X-Request-ID","X-Forge-Cache"] —
cors_allow_credentials boolean No false —
cors_max_age_seconds integer No 600 min=0; max=86400
databases dict[str, DatabaseConfig] Yes — —
mongo_databases dict[str, MongoDatabaseConfig] No {} —
security SecurityConfig No SecurityConfig() —
cache CacheConfig No CacheConfig() —
rate_limit RateLimitConfig No RateLimitConfig() —
protection ProtectionConfig No ProtectionConfig() —
observability ObservabilityConfig No ObservabilityConfig() —
realtime RealtimeConfig No RealtimeConfig() —
roles dict[str, RoleConfig] No {} —
resources list[ResourceConfig] No [] —
mongo_resources list[MongoResourceConfig] No [] —
operations list[OperationConfig] No [] —
data_sources list[DataSourceConfig] No [] —
dependencies list[DependencySpec] No [] —
custom_endpoints list[CustomEndpointConfig] No [] —
event_channels list[EventChannelConfig] No [] —
webhook_docs list[WebhookDocConfig] No [] —
media MediaConfig No MediaConfig() —
features FeaturePacksConfig No FeaturePacksConfig() —
project_dir string No "" —
$schema string No — Optional editor-only JSON Schema reference. Ignored by the runtime.

Manifest, fragments and loader model

app.json is the manifest and config/*.json contains ordered fragments. The manifest and fragment schemas use the applicable portions of the same project schema. One fragment is not a complete ProjectConfig. Runtime binds project_dir to the project location; avoid machine-specific paths in portable configuration. ForgeConfig is the loader’s internal container for multiple ProjectConfig instances.

Field Type Required Default Schema constraints
name string No "JSON API Forge" —
version string No "0.5.1" —
projects list[ProjectConfig] Yes — —

Sources and verification

This page describes the behavior at the pinned commits below. Recheck these contracts when upgrading.


English home · All English pages · Version maintenance

Clone this wiki locally