Views API

API Reference

Views require a MongoDB connection. All admin endpoints require authentication and the views permission. View configs are stored in the cms__views MongoDB collection.

Requires: views permission

List all view configs, sorted by creation date descending.

Requires: views permission

Create a new view config. Returns 201 on success.

{
  "title": "Active Premium Users",
  "slug": "active-premium-users",
  "connection": "default",
  "pipeline": {
    "source": "users",
    "stages": [
      { "type": "$match",   "config": { "data.status": "active" } },
      { "type": "$sort",    "config": { "meta.createdAt": -1 } },
      { "type": "$project", "config": { "data.name": 1, "data.email": 1 } }
    ]
  },
  "display": { "mode": "table", "columns": [ { "key": "data.name", "label": "Name" } ], "pageSize": 25 },
  "access": { "roles": ["admin", "manager"], "public": false }
}

Requires: views permission

Return a single view config by slug.

Requires: views permission

Update a view config. Accepts the same body shape as POST; all fields are optional.

Requires: views permission

Delete a view config.

Requires: views permission

Execute the view's aggregation pipeline and return paginated results. Query params: page (default 1), limit (default 25).

// Response
{ "results": [ ... ], "total": 142, "page": 1, "limit": 25 }

Requires: views permission

List all view configs whose pipeline.source matches the given collection slug.

Access level: per view access config

Execute the view publicly. If access.public is false, a valid JWT and a role listed in access.roles is required.