foundry-slate

Phonograph2:ReadOnlyTables error in Slate writeback query


I'm working with a sample dataset of airports as I continue exploring Slate features for my team. I copied the default airport dataset into my files, so this is a version that I fully own (so presumably no permission issues there). The dataset is properly available in my Slate application since I'm also using it to display and filter data via Phonograph2 queries.

Based on the Phonograph2 docs, I created a new query to add a new airport to the dataset. I'm using the "Table Storage Service" and the "Post Event" endpoint. As a test, I configured my tableEditedEventPostRequest request as:

{
  "primaryKey": {
    "airport": "ABC"
  },
  "payload": {
    "type": "rowAdded",
    "rowAdded": {
      "columns": {
        "display_name": "[ABC] My New Airport"
      }
    }
  }
}

(Once I get this working I'd switch the values out with dynamic values from widgets.)

When I run a test of this query, I get this error response:

{
  "errorCode":"INVALID_ARGUMENT",
  "errorName":"Phonograph2:ReadOnlyTables",
  "errorInstanceId":"17ec990d-5d58-479d-a1b6-5ad033c8c808",
  "parameters":{
    "tableRids":"[ri.phonograph2.main.table.f3f33f6e-801a-4454-98e9-f2df5f170559]",
    "dataInputLocatorRids":"[ri.foundry.main.dataset.6add7c46-d3c9-4056-89b6-a19dbe461ed4]"
  }
}

I'm not finding anything about this error or anything in the docs (so far) about the target dataset being configured as read-only. There aren't settings I can find on the dataset to make it more permissive and I'm already the owner of the dataset. I'd appreciate any insights or tips to get past this road block.


Solution

  • For a Phonograph Table to be "editable" it needs to be associated with a writeback dataset. If you created the sync through the Ontology, which it seems like you did not, you would do this on the "Datasources" configuration tab.

    Since it sounds like you created the sync directly from the Dataset Details view (or maybe through the Slate Datasets tab), you should have an option in that configuration to create a new dataset for writeback. All you should need to do is provide a dataset name and folder location.