SG Ground Truth

Entity types

One card per entity type. Each gives the schema name and the REST slug, the field that identifies a row, what a create is refused without, every link field with the types it accepts, the status field, and the traps.

The card is named for the schema name, so /entity-types/Version is the same string the API answers to.

  • Asset

    Only project is required to create an Asset; omit code and the server writes "New Asset <id>", and two assets in one project may share a code, so key on id and never on code.

    • list-field
  • Attachment

    POST /entity/attachments answers 201 on an empty body and returns a row with no file; this_file is editable on create only, so bytes reach a site through the upload dance and never through a create.

    • upload
    • media
    • url
    • attachment
  • Cut

    A Cut stores an edit, it does not model one: no field is computed or validated, and cut_items is returned sorted by the item's display name rather than by cut_order.

    • timecode
    • list-field
    • cut
  • CutItem

    Nothing on a CutItem is unique and code repeats across Cuts, so an id found by a code search may sit on another Cut: check cut before every update or the write lands on the wrong edit.

    • cut
    • timecode
    • filter
    • operator
    • dotted-field
  • Delivery

    Delivery has two independent Version links, sg_versions and version_sg_deliveries_versions; writing one leaves the other empty, and only the second mirrors Version.sg_deliveries.

    • version
    • published-file
    • reply
    • attachment
    • list-field
    • filter
    • delivery
  • HumanUser partial

    sudo_as_login matches login and never email; a create is 401 unless it sends sg_status_list: "dis", and an empty projects is not site-wide access.

    Not measured. what an active user costs in seats, since the site refuses to create or promote one; and whether `projects` or the permission rule set produces the project subset, which needs two users the site does not have

    • user
    • permission
    • sudo
  • LocalStorage

    A LocalStorage row is site-wide and admin-only to write: an Artist reads every row and is refused on create, update and delete. code must be unique among live rows, and a DELETE frees it for reuse.

    • path
    • storage
    • permission
    • published-file
  • Note

    A Note is titled by subject and bodied by content; only project is required to create one, attachments link in that same call, and a bare write to replies destroys the Reply rows.

    • attachment
    • jsonb
    • destructive
    • note
  • Playlist

    Playlist.versions reads back sorted by the Version's code, never in the order written; the human order is sg_sort_order on PlaylistVersionConnection, which a write through the field leaves null.

    • version
    • silent
    • playlist
  • Project

    Project is site-wide and has no project field, so a scoping filter 400s on it; name is the identity, the only field both mandatory and unique, and code is a second unique text field.

    • filter
    • project
  • PublishedFile

    Only project is required to create a PublishedFile, and nothing is unique: the same name, version_number and path publish twice at 201, so read the last version before writing the next.

    • path
    • storage
    • dependency
    • published-file
  • PublishedFileType

    PublishedFileType is site-wide with no project field, so a publish that creates one on an unknown extension adds it to every project; code is the identity and the only unique field.

    • published-file
    • enumeration
    • filter
    • silent
  • Reply

    Reply is site-wide with no project field, and entity accepts almost every type on the site, not only Note; send entity on create, because a Reply whose entity is null cannot be deleted.

    • note
    • query
    • filter
    • silent
    • destructive
    • reply
  • Sequence

    A Sequence needs project, not code, and project alone names it New Sequence <id>; shots is the reverse of Shot.sg_sequence, one link, so a Shot sits in exactly one Sequence.

    • shot
    • write
    • dotted-field
    • silent
    • sequence
  • Shot

    A Shot needs only project on create, and code is flagged mandatory, is optional and is not unique: an omitted one becomes "New Shot <id>" and a re-run duplicates rows. Send code, key on id.

    • pivot-column
    • shot
  • Step

    Step is site-wide with no project field, partitioned only by entity_type; list the Steps for a Shot with entity_type is "Shot", and treat neither code nor short_name as unique.

    • task
    • filter
    • query
    • silent
    • step
  • Task

    A Task is named by content, never code; a create needs only project; start_date, due_date and duration are one triple the server recomputes on every write.

    • dependency
    • duration
    • task
  • TimeLog

    A TimeLog create requires only project; date defaults to the server's today instead of failing, entity takes any type despite valid_types ['Task'], and a script may log for any HumanUser.

    • task
    • duration
  • Version

    The schema inverts the create contract: project is required and code is not, generated as "New Version <id>" when omitted. code is not unique, so key on id.

    • media
    • link
    • version

Every entry on this site is the output of a probe in probes/. The corpus is generated by running those probes against a live Flow Production Tracking site, not written from memory.

Not affiliated with or endorsed by Autodesk. Flow Production Tracking is their product; this is an independent record of how its REST API answers.