Orgs, Repos, and Collections

This article describes the role of the “Cluster” named graph in Flexo MMS. Layer 1 forbids arbitrary writes to this graph and instead exposes a set of LDP endpoints.

This named graph holds organizational objects that are global to the deployed Flexo MMS cluster. Specifically, a Repo is the container for version-controlled data (similar to a git repository), a Collection is readonly view that selects the union of any number of Refs when queried, and an Org is an entity that owns Repos or Collections.

Linked Data Platform (LDP) actions

The following list describes the LDP semantics of various HTTP operations available on Cluster objects.

  • /orgs

    • HEAD – Returns state of all orgs along with their entity tags.

    • GET – Enumerates all orgs along with their public properties.

    • POST – Creates a new org.

  • /orgs/{ORG_ID}

    • PUTCreates a new org, or replaces an existing one.

      • Suggested properties: dct:title "{ORG_TITLE}"

    • HEAD/GETReads public properties of the given org.

    • PATCHUpdates an existing org.

    • DELETEDeletes an org.

  • /orgs/{ORG_ID}/repos

    • HEAD – Returns state of all repos under the given org, along with their entity tags.

    • GET – Enumerates all repos along with their public properties.

    • POST – Creates a new repo.

  • /orgs/{ORG_ID}/repos/{REPO_ID}

    • PUTCreates a new repo, or replaces an existing one.

      • Suggested properties: dct:title "{REPO_TITLE}"

    • HEAD/GETReads public properties of the given repo.

    • PATCHUpdates an existing repo.

    • DELETEDeletes a repo.

  • /orgs/{ORG_ID}/repos/{REPO_ID}/branches

    • HEAD – Returns state of all branches under the given repo, along with their entity tags.

    • GET – Enumerates all branches belonging to the given repo.

  • /orgs/{ORG_ID}/repos/{REPO_ID}/branches/{BRANCH_ID}

    • PUTCreates a new branch

    • HEAD/GETReads public properties of the given branch.

    • PATCHUpdates an existing branch.

    • DELETEDeletes a branch.

  • /orgs/{ORG_ID}/repos/{REPO_ID}/locks

    • HEAD – Returns state of all locks under the given repo, along with their entity tags.

    • GET – Enumerates all locks belonging to the given repo.

  • /orgs/{ORG_ID}/repos/{REPO_ID}/locks/{LOCK_ID}

    • PUTCreates a new branch

    • HEAD/GETReads public properties of the given branch.

    • PATCHUpdates an existing branch.

    • DELETEDeletes a branch

  • /orgs/{ORG_ID}/collections/{COLLECTION_ID}

    • GET – Enumerates all collections along with their public properties.

  • /orgs/{ORG_ID}/collections/{COLLECTION_ID}

    • PUTCreates a new collection.

      • Suggested properties: dct:title "{COLLECTION_TITLE}"

    • GETReads public properties of the given collection.

    • PATCHUpdates an existing collection.

    • DELETEDeletes a collection.