Ctrl K
ComunidadGuías…

migrations/014_circle_access.sql

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
ALTER TABLE person
  ADD COLUMN IF NOT EXISTS circles text[] NOT NULL DEFAULT '{}';

CREATE TABLE IF NOT EXISTS circle (
  circle_id text PRIMARY KEY,
  display_name text NOT NULL,
  mattermost_channel_id text NOT NULL DEFAULT '',
  is_mattermost_managed boolean NOT NULL DEFAULT false,
  workspace_directory_path text NOT NULL DEFAULT '',
  created_at timestamptz NOT NULL,
  updated_at timestamptz NOT NULL
);

CREATE TABLE IF NOT EXISTS person_circle (
  person_circle_id text PRIMARY KEY,
  person_id text NOT NULL REFERENCES person(person_id) ON DELETE CASCADE,
  circle_id text NOT NULL REFERENCES circle(circle_id) ON DELETE CASCADE,
  source text NOT NULL,
  created_at timestamptz NOT NULL,
  updated_at timestamptz NOT NULL,
  UNIQUE (person_id, circle_id)
);

CREATE TABLE IF NOT EXISTS resource_access_rule (
  resource_access_rule_id text PRIMARY KEY,
  resource text NOT NULL,
  actions text[] NOT NULL DEFAULT '{}',
  circles text[] NOT NULL DEFAULT '{}',
  created_at timestamptz NOT NULL,
  updated_at timestamptz NOT NULL,
  UNIQUE (resource, actions, circles)
);

CREATE TABLE IF NOT EXISTS mattermost_circle_link (
  circle_id text PRIMARY KEY REFERENCES circle(circle_id) ON DELETE CASCADE,
  channel_name text NOT NULL UNIQUE,
  channel_id text NOT NULL DEFAULT '',
  last_synced_at timestamptz
);

ALTER TABLE graphiti_namespace
  ADD COLUMN IF NOT EXISTS scope_circle_id text;

CREATE INDEX IF NOT EXISTS graphiti_namespace_circle_lookup_idx
  ON graphiti_namespace (scope_type, scope_circle_id, updated_at DESC);