ontology-promotion

Promote Database

Changed on

Promote a Database into an OntologyEntity (creates the writeable surface).

ADMIN on the DATABASE being promoted, on top of the company-role gate. assert_can_write_entity only asks "is this caller owner or admin of the company" — it says nothing about the dataset — and PromoteDatabase auto-grants the promoter ADMIN on the new entity. Since row_policy.get_filters_for_entities skips a database's policies for anyone holding effective ADMIN on the entity, a company admin with no grant on D (or a deliberately row-restricted VIEWER on it) could promote D and read every row of the resulting E.

Requiring ADMIN on D first means the promoter already had that bypass — admin_db_ids would have exempted them from D's policies anyway — so promotion confers nothing new. That is the fix, rather than changing the entity-ADMIN bypass, which is a deliberate spec rule (§5.1) with other callers.

post/api/v1/ontology/databases/{database_id}/promote

Request

  • Base URL
    https://api.netter.ai (the document declares no server; this is the origin it was published from)
  • URL
    https://api.netter.ai/api/v1/ontology/databases/{database_id}/promote
  • Auth
    none declared

Path parameters

database_idstring uuid required

Request body

namestring required

Entity slug

descriptionstring
display_namestring nullable
iconstring nullable

Tabler icon; Netter suggests one when omitted.

file_columnsstring[] nullable

Text columns containing uploaded file IDs to expose as File fields. Omit to retain existing selections; an empty list clears them.

key_columnsstring[] nullable

Single-element list naming the column whose values become the entity's row identity. Required for file-backed Databases (CSV uploads) whose key_columns is empty; ignored otherwise.

Response

Successful Response

idstring uuid required
company_idstring uuid required
namestring required
display_namestring required
descriptionstring required
database_idstring uuid required
key_columnstring required
record_countinteger required
statusstring required
created_atstring date-time required
updated_atstring date-time required
is_editableboolean
is_file_backedboolean
last_synced_atstring date-time nullable
source_row_countinteger
iconstring nullable
is_refreshingboolean

Changes