Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions SUPABAES_SETUP_SCRIPTS/braudcasts/broadcastsetup.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
create or replace function public.cw_air_data_changes()
returns trigger
security definer
language plpgsql
set search_path = ''
as $$
begin
-- Broadcast the change event to the “cw_air_data” topic.
-- TG_OP is the operation (INSERT/UPDATE/DELETE), TG_TABLE_NAME is the table,
-- TG_TABLE_SCHEMA is the schema, NEW is the new row, OLD is the old row.
perform realtime.broadcast_changes(
'cw_air_data', -- topic name
TG_OP, -- event name (INSERT/UPDATE/DELETE)
TG_OP, -- operation type
TG_TABLE_NAME, -- table name
TG_TABLE_SCHEMA, -- schema name
NEW, -- new record
OLD -- old record
);
return null;
end;
$$;

create trigger cw_air_data_broadcast_trigger
after insert or update or delete on public.cw_air_data
for each row
execute function cw_air_data_changes();




--------------------- CW_RELAY_DATA TABLE ---------------------
-- Create or replace the function for broadcasting relay data changes
create or replace function public.cw_relay_data_changes()
returns trigger
security definer
language plpgsql
set search_path = ''
as $$
begin
-- Broadcast the change event to the “cw_relay_data” topic.
perform realtime.broadcast_changes(
'cw_relay_data', -- topic name
TG_OP, -- event name (INSERT/UPDATE/DELETE)
TG_OP, -- operation type
TG_TABLE_NAME, -- table name
TG_TABLE_SCHEMA, -- schema name
NEW, -- new record
OLD -- old record
);
return null;
end;
$$;

-- Create the trigger that calls the function
create trigger cw_relay_data_broadcast_trigger
after insert or update or delete on public.cw_relay_data
for each row
execute function public.cw_relay_data_changes();

-- Allow authenticated users to receive broadcast messages on cw_relay_data
create policy "authenticated can receive cw_relay_data"
on realtime.messages
for select
to authenticated
using (
realtime.topic() = 'cw_relay_data' AND
realtime.messages.extension = 'broadcast'
);

-- Allow authenticated users to send broadcast messages on cw_relay_data
create policy "authenticated can send cw_relay_data"
on realtime.messages
for insert
to authenticated
with check (
realtime.topic() = 'cw_relay_data' AND
realtime.messages.extension = 'broadcast'
);
92 changes: 46 additions & 46 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,69 +26,69 @@
]
},
"devDependencies": {
"@eslint/compat": "^1.2.5",
"@eslint/js": "^9.18.0",
"@event-calendar/core": "^4.4.0",
"@playwright/test": "^1.49.1",
"@sveltejs/adapter-vercel": "^5.6.3",
"@sveltejs/kit": "^2.16.0",
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"@eslint/compat": "^1.4.0",
"@eslint/js": "^9.37.0",
"@event-calendar/core": "^4.7.0",
"@playwright/test": "^1.56.0",
"@sveltejs/adapter-vercel": "^5.10.3",
"@sveltejs/kit": "^2.46.5",
"@sveltejs/vite-plugin-svelte": "^5.1.1",
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.0.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/svelte": "^5.2.4",
"@tailwindcss/typography": "^0.5.19",
"@tailwindcss/vite": "^4.1.14",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/svelte": "^5.2.8",
"@types/d3": "^7.4.3",
"@types/event-calendar__core": "^4.4.0",
"@types/luxon": "^3.6.2",
"@types/pdfkit": "^0.17.0",
"@types/event-calendar__core": "^4.7.0",
"@types/luxon": "^3.7.1",
"@types/pdfkit": "^0.17.3",
"@types/swagger-ui": "^5.21.1",
"@vite-pwa/sveltekit": "^1.0.0",
"eslint": "^9.18.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-svelte": "^3.0.0",
"globals": "^16.0.0",
"husky": "^8.0.0",
"jsdom": "^26.0.0",
"lint-staged": "^16.1.2",
"prettier": "^3.4.2",
"prettier-plugin-svelte": "^3.3.3",
"prettier-plugin-tailwindcss": "^0.6.11",
"supabase": "^2.33.9",
"svelte": "^5.0.0",
"svelte-check": "^4.0.0",
"tailwindcss": "^4.0.0",
"typescript": "^5.0.0",
"typescript-eslint": "^8.20.0",
"vite": "^6.2.6",
"eslint": "^9.37.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-svelte": "^3.12.4",
"globals": "^16.4.0",
"husky": "^8.0.3",
"jsdom": "^26.1.0",
"lint-staged": "^16.2.4",
"prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.0",
"prettier-plugin-tailwindcss": "^0.6.14",
"supabase": "^2.51.0",
"svelte": "^5.39.11",
"svelte-check": "^4.3.3",
"tailwindcss": "^4.1.14",
"typescript": "^5.9.3",
"typescript-eslint": "^8.46.0",
"vite": "^6.3.6",
"vite-plugin-commonjs": "^0.10.4",
"vitest": "^3.0.0"
"vitest": "^3.2.4"
},
"dependencies": {
"@internationalized/date": "^3.9.0",
"@internationalized/date": "^3.10.0",
"@mdi/js": "^7.4.47",
"@stencil/store": "^2.1.3",
"@stripe/stripe-js": "^7.4.0",
"@stencil/store": "^2.2.0",
"@stripe/stripe-js": "^7.9.0",
"@supabase/ssr": "^0.6.1",
"@supabase/supabase-js": "^2.49.4",
"@types/lodash": "^4.17.16",
"@supabase/supabase-js": "^2.75.0",
"@types/lodash": "^4.17.20",
"apexcharts": "^4.7.0",
"bits-ui": "^1.4.8",
"bits-ui": "^1.8.0",
"bufferutil": "^4.0.9",
"canvas": "^3.1.2",
"chart.js": "^4.5.0",
"canvas": "^3.2.0",
"chart.js": "^4.5.1",
"d3": "^7.9.0",
"d3-axis": "^3.0.0",
"d3-scale": "^4.0.2",
"d3-selection": "^3.0.0",
"jspdf": "^3.0.1",
"jspdf": "^3.0.3",
"leaflet": "2.0.0-alpha",
"lodash": "^4.17.21",
"luxon": "^3.6.1",
"pdfkit": "^0.17.1",
"stripe": "^18.3.0",
"luxon": "^3.7.2",
"pdfkit": "^0.17.2",
"stripe": "^18.5.0",
"svelte-i18n": "^4.0.1",
"swagger-ui": "^5.21.0",
"swagger-ui": "^5.29.4",
"utf-8-validate": "^6.0.5"
},
"pnpm": {
Expand All @@ -98,5 +98,5 @@
"svelte-preprocess"
]
},
"packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977"
"packageManager": "pnpm@10.18.2+sha512.9fb969fa749b3ade6035e0f109f0b8a60b5d08a1a87fdf72e337da90dcc93336e2280ca4e44f2358a649b83c17959e9993e777c2080879f3801e6f0d999ad3dd"
}
Loading