Projects, features, and environments
Mojito-compatible configuration hierarchy, immutable environment publications, and governed promotion in Fabric Experiments.
Fabric Experiments now supports a configuration hierarchy alongside its experiment lifecycle:
Organization
└── Project
├── Properties (web, server, mobile, Databricks)
├── Environments (Development → Staging → Production)
└── Features
└── Rules per environment
├── targeting audience
├── rollout percentage
├── fixed value, or
└── experiment variantsThis is the compatibility layer for teams moving from Mojito Console. Existing tenant-scoped experiments continue to work; new experiments can optionally bind to projectId, propertyId, featureId, and one or more environmentIds.
Publications and promotion
Publishing an environment creates an immutable snapshot with:
- a monotonically increasing environment version,
- a SHA-256 resource hash,
- the active features and ordered rules,
- the current experiment manifest version,
- the publisher and timestamp.
Promotion copies the latest published source rules into the next higher-ranked environment. Existing target rules are disabled first. Production environments can require an owner/admin approval. Promotion does not publish automatically, so the target remains reviewable before activation.
Every create, update, publish, and promote mutation goes through the Fabric Platform action invocation path and emits correlated audit evidence.
Studio
Open Configuration in Studio. The dotted stage canvas shows Development, Staging, and Production, their latest publication versions, active-rule counts, and guarded promotion controls. The same screen manages properties, features, and rules.
API
The hosted API exposes typed endpoints under /v1/orgs/:orgId for:
/projects/projects/:projectId/properties/projects/:projectId/environments/projects/:projectId/features/features/:featureId/rules/environments/:environmentId/publish/environments/:environmentId/promote/environments/:environmentId/publications/environments/:environmentId/configuration(latest immutable publication)
The generated @fabricorg/experiments-api-client exposes matching projects, properties, environments, features, and rules namespaces.
Databricks workload bindings
Experiments can bind to a first-class workload descriptor:
workload:
kind: job
resourceId: "123456789"
resourceName: checkout-ranking-shadow
evaluationMode: shadow
assignmentUnit: job-run
catalog: tf_databricks
schema: fabric_experiments_prodSupported workload kinds are SQL, notebooks, Jobs, Lakeflow pipelines, models, and Feature Serving endpoints. Modes are online, offline, and shadow; assignment units include users, requests, job runs, and table partitions.