docs/install/architecture/piece-syncing.mdx
Pieces are standard npm packages. Two facts follow from that:
flowchart LR
REG["npm registry
(@activepieces/piece-*)"]
CAT["Local piece catalog"]
STEP["Flow step
pieceVersion: 0.5.3"]
UI["Builder version dialog"]
REG -- "hourly sync
(OFFICIAL_AUTO)" --> CAT
CAT -- "exact version on add" --> STEP
UI -- "explicit upgrade" --> STEP
classDef src fill:#eef,stroke:#88a
classDef catalog fill:#efe,stroke:#7a7
classDef flow fill:#fee,stroke:#a77
class REG src
class CAT catalog
class STEP,UI flow
| Type | Source | Installed by |
|---|---|---|
| Official | Activepieces cloud registry | Auto-sync |
| Custom (npm) | npm registry, scoped to one platform | Platform admin |
| Private (archive) | .tgz upload | Platform admin |
Custom and private pieces are managed manually — see Manage pieces.
AP_PIECES_SYNC_MODE | Behavior |
|---|---|
OFFICIAL_AUTO | Hourly reconcile against the cloud registry. Default for all deployments. |
Custom and private pieces are never touched by the sync job.
Every piece declares a minimumSupportedRelease (and optional maximumSupportedRelease) in its definition — the range of Activepieces server releases it works on. The catalog filters pieces against the running server's release, so an out-of-range piece is never listed in the builder and never served from the registry.
Adding a step records the exact piece version at that moment (e.g. 0.5.3). The pin stays until a human changes it. To upgrade, open the step in the builder, click the version next to its name, and pick a new one. The dialog warns when the change crosses a minor or major boundary.