Before you begin
You need:- a Strapi 5 project reachable through an HTTPS origin;
- a Read Only API token, or a custom token with
findandfindOnepermission for every collection you intend to sync; and - the Content API ID for each collection, such as
articles,authors, orproduct-categories.
/api. MantrixFlow constructs /api/{api_id} server-side.
Create the source connection
- Open Connections in your MantrixFlow workspace.
- Click + New Connection and choose Source.
- Select Strapi.
- Enter a descriptive connection name.
- Enter the Strapi HTTPS origin without
/api, a path, query, or fragment. - Enter the read-only API token.
- Click Test Connection and save the connection.
Add Content API collections
Strapi projects define their own content types, so there is no universal stream catalog. Configure the collections used by this pipeline:- Create or open a pipeline that uses the Strapi connection.
- Open the Source tab.
- In Strapi content types, enter a Content API ID such as
articles. - Click Add and repeat for the other required collections.
- Click Save content types.
- Discover the catalog, preview each collection, enable the required streams, and save the stream configuration.
product-categories, not /api/product-categories or a full URL. MantrixFlow
rejects paths, traversal, admin/plugin routes, arbitrary query strings, and
endpoint URLs.
Each collection has a stable staging relation:
articles is staged as strapi__articles.
Sync behavior
Strapi currently supports Full Table only. Each run paginates every selected collection visible to the token and replaces that collection’s staging resource. Unselected collections receive no extraction requests. Incremental sync and CDC are disabled. MantrixFlow does not yet advertise anupdatedAt cursor or merge key because documentId, locale variants, inclusive
timestamp boundaries, and failed-run recovery require additional live Strapi 5
verification.
Normal collection requests use published content by default. Draft ingestion
is not currently exposed as a pipeline option.
Record shape and nested data
Strapi 5 root records preserve fields returned by the Content API, includingid, documentId, createdAt, updatedAt, publishedAt, and locale when
present. dlt normalizes nested objects and arrays such as components, rich-text
blocks, and dynamic zones into related staging tables.
MantrixFlow does not automatically add populate=*. Relations and media fields
contain only the data Strapi returns for the authorized collection request.
Media metadata can pass through the source payload, but the connector does not
follow or download media URLs.
Use the exact root and child table names shown by discovery and preview when
writing a transformation. A minimal article model can start with:
URL and network security
Hosted MantrixFlow requires HTTPS and blocks localhost, loopback, link-local, private, reserved, and cloud-metadata network addresses. DNS answers and redirects are validated before requests, and redirects must remain on the same validated origin under/api/.
Private-network Strapi deployments require an explicit self-hosted MantrixFlow
network policy. A browser-supplied endpoint cannot weaken the hosted SSRF
policy.
Pagination and retries
The connector uses explicit Strapi page/page-size pagination and treatsmeta.pagination.page and pageCount as authoritative. The default page size
is conservative, and request/page budgets prevent unbounded extraction.
Retries are bounded for network failures, 429, 502, 503, and 504.
Retry-After is honored when Strapi or an upstream proxy returns it. Invalid
queries, authentication failures, permission errors, and missing content types
fail without endless retries.
Verify a run
After starting a pipeline, open Runs and confirm:- every selected
strapi__<api_id>resource is listed; - extracted counts match the published records visible in Strapi;
- Rows failed is
0; - nested component or dynamic-zone child tables contain the expected rows; and
- each published transformation reaches its intended destination table.
Current limitations
- Strapi is Available Now, source-only, and supports Strapi 5 only.
- Full Table is the only sync mode; Incremental and CDC are disabled.
- Only collection types are advertised. Single types are not supported.
- Draft selection, locale selection, and explicit relation population are not exposed yet.
- OpenAPI import and automatic content-type discovery are not implemented.
- Media binaries are never downloaded.
- Private fields omitted by Strapi remain unavailable.
- Manual live Strapi-to-destination validation remains pending and is not an independent production-certification claim.
Troubleshooting
See the Strapi 5 documentation for Content API and
API-token administration guidance.