PHPackages                             labor-digital/factory-multitenant-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. labor-digital/factory-multitenant-api

ActiveTypo3-cms-extension[API Development](/categories/api)

labor-digital/factory-multitenant-api
=====================================

HTTP API for the LABOR.digital Factory shared-tenant TYPO3 — create tenants, update capabilities live, and report deployed factory-core version. Opt-in: only install on shared-tenant deployments. Off-by-default at runtime.

0.9.0(2w ago)067GPL-2.0-or-laterPHPPHP ^8.4

Since May 8Pushed 2w agoCompare

[ Source](https://github.com/labor-digital/factory-multitenant-api)[ Packagist](https://packagist.org/packages/labor-digital/factory-multitenant-api)[ Docs](https://github.com/labor-digital/lab-factory/tree/main/factory-core/typo3-multitenant-api)[ RSS](/packages/labor-digital-factory-multitenant-api/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (2)Versions (23)Used By (0)

Factory Multitenant API
=======================

[](#factory-multitenant-api)

HTTP API for the LABOR.digital Factory shared-tenant TYPO3. Wraps `factory-core`'s tenant primitives so the pipeline-app (and other tooling) can create tenants and update their capabilities without a redeploy.

> **Opt-in.** Single-tenant Factory installs should NOT install this extension. It exposes shared-tenant operations that don't apply to dedicated stacks.

Endpoints
---------

[](#endpoints)

All routes live under `/api/multitenant`. JSON in, JSON out. Bearer auth.

MethodPathDescription`GET``/version`Deployed `factory_core` + `factory_multitenant_api` + TYPO3 versions plus the supported seed-schema range.`GET``/tenants`List all tenants (anything with a `config/sites//factory.json`).`GET``/tenants/{slug}`One tenant.`POST``/tenants`Create a tenant. Wraps `factory:tenant:provision`.`PATCH``/tenants/{slug}`Update capabilities (`active_components`, `active_record_types`, `settings`). Atomic rewrite of `factory.json` + cache invalidate; takes effect immediately on the worker handling the PATCH.Activation
----------

[](#activation)

The middleware is **off by default**. To turn the API on, set both:

```
FACTORY_MULTITENANT_API_ENABLED=true
FACTORY_MULTITENANT_API_TOKEN=
```

Without both env vars, every `/api/multitenant/*` request returns 404. With them set, requests must present `Authorization: Bearer `.

The deploy repo (`labor-factory-multitenant`) injects both via AWS Secrets Manager. See its private docs for the exact wiring.

Hardening checklist (production)
--------------------------------

[](#hardening-checklist-production)

1. ALB rule for `/api/multitenant/*` restricted to a CIDR allowlist (LABOR offices + Bitbucket Pipelines egress).
2. Bearer token rotated quarterly.
3. CloudWatch log filter on `factory_multitenant_api rejected` → ops alert.
4. `FACTORY_MULTITENANT_API_ENABLED` left unset on any non-shared-tenant deploy.

See also
--------

[](#see-also)

- Design Log #013 — Multitenant API &amp; Live Capability Updates
- Design Log #011 — Multi-Tenant TYPO3
- `labor-digital/factory-core` — the underlying tenant primitives

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance96

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

22

Last Release

20d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0eb1c26fb5a535cd7a656faffbae7929009558b2bfa6156b2be7b636d689e13a?d=identicon)[labor-digital](/maintainers/labor-digital)

---

Tags

apifactoryheadlessTYPO3 CMStypo3multi-tenanttypo3-cms-extensionlabor-digital

### Embed Badge

![Health badge](/badges/labor-digital-factory-multitenant-api/health.svg)

```
[![Health](https://phpackages.com/badges/labor-digital-factory-multitenant-api/health.svg)](https://phpackages.com/packages/labor-digital-factory-multitenant-api)
```

###  Alternatives

[aimeos/aimeos-headless

Aimeos headless ecommerce system

2.5k2.3k](/packages/aimeos-aimeos-headless)[b13/slimphp-bridge

Provides a middleware for registering Slim PHP applications within TYPO3 Frontend Sites

2048.8k1](/packages/b13-slimphp-bridge)[friendsoftypo3/interest

REST and CLI API for adding, updating, and deleting records in TYPO3. Tracks relations so records can be inserted in any order. Uses remote ID mapping so you don't have to keep track of what UID a record has gotten after import. Data is inserted using backend APIs as if a real human did it, so you can can inspect the record history and undo actions.

122.1k1](/packages/friendsoftypo3-interest)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
