{
  "tables": [
    {
      "name": "memberships",
      "type": "table",
      "columns": [
        {
          "name": "membership_id",
          "position": 1,
          "db_type": "varchar(64)",
          "go_type": "string",
          "json_type": "string",
          "nullable": false,
          "is_primary_key": true,
          "is_auto_increment": false,
          "is_unique": true
        },
        {
          "name": "display_name",
          "position": 2,
          "db_type": "varchar(255)",
          "go_type": "string",
          "json_type": "string",
          "nullable": false,
          "is_primary_key": false,
          "is_auto_increment": false,
          "is_unique": false
        }
      ],
      "primary_key": [
        "membership_id"
      ],
      "foreign_keys": [],
      "indexes": []
    },
    {
      "name": "tasks",
      "type": "table",
      "columns": [
        {
          "name": "id",
          "position": 1,
          "db_type": "bigint",
          "go_type": "int64",
          "json_type": "integer",
          "nullable": false,
          "is_primary_key": true,
          "is_auto_increment": true,
          "is_unique": true
        },
        {
          "name": "title",
          "position": 2,
          "db_type": "varchar(255)",
          "go_type": "string",
          "json_type": "string",
          "nullable": false,
          "is_primary_key": false,
          "is_auto_increment": false,
          "is_unique": false
        },
        {
          "name": "status",
          "position": 3,
          "db_type": "varchar(32)",
          "go_type": "string",
          "json_type": "string",
          "nullable": false,
          "default": "todo",
          "is_primary_key": false,
          "is_auto_increment": false,
          "is_unique": false
        },
        {
          "name": "metadata",
          "position": 4,
          "db_type": "json",
          "go_type": "interface{}",
          "json_type": "object",
          "nullable": true,
          "is_primary_key": false,
          "is_auto_increment": false,
          "is_unique": false
        }
      ],
      "primary_key": [
        "id"
      ],
      "foreign_keys": [],
      "indexes": []
    }
  ],
  "views": [],
  "procedures": [],
  "functions": [],
  "published_resources": [
    {
      "logical_table": "memberships",
      "isolation_mode": "shared_table_with_row_filter",
      "allowed_actions": [
        "schema.read",
        "table.read",
        "table.insert",
        "table.update"
      ],
      "allowed_columns": [
        "display_name",
        "membership_id"
      ]
    },
    {
      "logical_table": "tasks",
      "isolation_mode": "shared_table_with_row_filter",
      "allowed_actions": [
        "schema.read",
        "table.read",
        "table.insert",
        "table.update",
        "table.delete"
      ],
      "allowed_columns": [
        "id",
        "metadata",
        "status",
        "title"
      ]
    }
  ]
}
