Skip to content

Trigger a manual sync for the tenant FLECS store

POST
/api/v1/flecs-store/sync
curl --request POST \
--url http://localhost:3000/api/v1/flecs-store/sync \
--header 'X-API-Key: <X-API-Key>'

Triggers an immediate sync of the current organization’s FLECS marketplace store, ahead of the automatic 5-minute schedule. Returns null when no store is configured, or when the FLECS catalog discovery call itself failed before the underlying OCI sync could start (see the store’s lastSyncError for the reason).

x-organization-id
string format: uuid

UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.

Sync operation completed (or discovery failed — see lastSyncError)

Media typeapplication/json
object
success
required
boolean
status
required
string
Allowed values: success empty partial failed
registryId
required
string
repositoriesFound
required
number
applicationsFound
required
number
applicationsImported
required
number
applicationsUpdated
required
number
versionsRemoved
required
number
versionsMarkedUnavailable
required
number
applicationsRemoved
required
number
errors
required
Array<string>
perRepository
required
Array<object>
object
repository
required
string
tagCount
required
number
found
required
number
imported
required
number
updated
required
number
errors
required
Array<string>
skipped

Set when the app was skipped, not synced: no-oci-artifact means the FLECS store lists the app but it publishes no OCI artifact on the registry (404). Not an error (FM-1664).

string
Allowed values: no-oci-artifact
rejections

Tags that were not imported because they do not conform to the Margo registry spec (FM-1713). Absent when nothing was rejected.

Array<object>
object
tag
required
string
code
required

Stable code: NON_SPEC_ARTIFACT_TYPE, NON_EMPTY_CONFIG, RESOURCE_MEDIA_TYPE_MISMATCH, MISSING_DESCRIPTION_LAYER, REMOVED_DISCOVERY_STRATEGY or TAG_VERSION_MISMATCH.

string
reason
required
string
syncDuration
required
number
Example
{
"success": true,
"status": "success",
"registryId": "550e8400-e29b-41d4-a716-446655440000",
"repositoriesFound": 10,
"applicationsFound": 6,
"applicationsImported": 4,
"applicationsUpdated": 2,
"versionsRemoved": 0,
"versionsMarkedUnavailable": 0,
"applicationsRemoved": 0,
"errors": [],
"perRepository": [
{
"repository": "catalog/com-example-gateway-app",
"tagCount": 12,
"found": 3,
"imported": 1,
"updated": 2,
"errors": [],
"skipped": "no-oci-artifact",
"rejections": [
{
"tag": "1.0.0",
"code": "NON_SPEC_ARTIFACT_TYPE",
"reason": "OCI manifest has no artifactType; Margo rc2 requires \"application/vnd.margo.app.v1+json\"."
}
]
}
],
"syncDuration": 1234
}

Unauthorized

Forbidden

Application service unavailable