FastoMeta (1.0)

Download OpenAPI specification:

Metadata helper for gofastocloud_backend (wsfastocloud editor) + landing

Single-tenant metadata helper: one instance per customer. It assists content entry with per-vertical labels, entity dictionaries (autocomplete), a filter catalog, and optional content autofill (TMDB when a tmdb_key is configured, otherwise a local SQLite source). It never owns the customer's content — the customer fills that in themselves.

Two surfaces:

  • /api/* — admin/write, gated by the X-Api-Key header (the instance's configured api_key).

  • /public/* — key-less reads consumed by gofastocloud_backend (the editor) and the landing. Single-tenant, so no tenant selector is needed.

All responses use the shared envelope: success is { "data": ... }, failure is { "error": { "code": int, "message": string } }.

config

Vertical template (labels, profile schema, custom fields)

Vertical config (public)

The vertical template the editor + landing need: the vertical wire enum, field relabelings, entity types, profile schema, and custom fields.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Vertical config (admin)

Same payload as /public/config, behind the admin key.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

entities

Entity dictionaries (fighters, coaches, teachers…) for autocomplete

List/search entities (public)

List all entities of a type, or search them for autocomplete when q is set.

query Parameters
type
string

Entity type filter (e.g. fighter, coach, teacher).

q
string

Search term. When empty on entities, all of the type are returned.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

List/search entities (admin)

List all entities of a type, or search them when q is set.

Authorizations:
ApiKey
query Parameters
type
string

Entity type filter (e.g. fighter, coach, teacher).

q
string

Search term. When empty on entities, all of the type are returned.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create an entity

Add a dictionary entity (e.g. a fighter or coach).

Authorizations:
ApiKey
Request Body schema: application/json
required
type
required
string
name
required
string
photo
string
bio
string
object

Responses

Request samples

Content type
application/json
{
  • "type": "string",
  • "name": "string",
  • "photo": "string",
  • "bio": "string",
  • "meta": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update an entity

Replace an existing entity by id.

Authorizations:
ApiKey
path Parameters
id
required
integer <int64>
Request Body schema: application/json
required
type
required
string
name
required
string
photo
string
bio
string
object

Responses

Request samples

Content type
application/json
{
  • "type": "string",
  • "name": "string",
  • "photo": "string",
  • "bio": "string",
  • "meta": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete an entity

Remove an entity by id.

Authorizations:
ApiKey
path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

catalog

Custom filter fields beyond the built-in ones

List custom filter fields

The catalog of custom filter fields beyond the built-in ones.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create or update a custom filter field

Upsert a custom filter field by key.

Authorizations:
ApiKey
Request Body schema: application/json
required
key
required
string
type
required
string
Enum: "string" "number" "bool"
options
Array of strings

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "type": "string",
  • "options": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a custom filter field

Remove a custom filter field by key.

Authorizations:
ApiKey
path Parameters
key
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

content

Movie/series autofill routed to the configured source (TMDB or SQLite)

Search movies

Search the configured source for movies matching q.

query Parameters
q
string

Search term. When empty on entities, all of the type are returned.

lang
string

Optional language override; falls back to the source's default.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get movie details

Full movie metadata for autofill (cast, directors, genres…).

path Parameters
id
required
string

Source-specific content id (e.g. a TMDB id).

query Parameters
lang
string

Optional language override; falls back to the source's default.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Search series

Search the configured source for series matching q.

query Parameters
q
string

Search term. When empty on entities, all of the type are returned.

lang
string

Optional language override; falls back to the source's default.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get series details

Full series metadata for autofill.

path Parameters
id
required
string

Source-specific content id (e.g. a TMDB id).

query Parameters
lang
string

Optional language override; falls back to the source's default.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get season details

Season metadata for the given series.

path Parameters
id
required
string

Source-specific content id (e.g. a TMDB id).

season
required
integer
query Parameters
lang
string

Optional language override; falls back to the source's default.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get episode details

Episode metadata for the given series/season.

path Parameters
id
required
string

Source-specific content id (e.g. a TMDB id).

season
required
integer
episode
required
integer
query Parameters
lang
string

Optional language override; falls back to the source's default.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

uploads

Profile photos

Upload a profile photo

Stores a multipart/form-data file (jpg/jpeg/png/webp/gif) and returns its relative URL (/uploads/<name>), host-agnostic so the landing can prefix it with the instance base URL.

Authorizations:
ApiKey
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}