The record
Every RPC
Every function PostgREST exposes at /rest/v1/rpc, and who may call it.
The record answers these directly. A caller reaches one at POST /rest/v1/rpc/<name> on the company's Supabase, running as whichever role its key carries. Row level security still applies to everything a function touches. A definer function also runs with its owner's privileges, so its own body is what decides what the caller may see.
| Name | Arguments | Returns | Security | Callable by |
|---|---|---|---|---|
account_of_address | address text | uuid | definer | service_role |
announce_event_reminders | — | void | definer | service_role |
apns_key_keep | new_key_id text, new_team_id text, new_bundle_id text, new_private_key text, new_environment text DEFAULT 'production'::text | void | definer | service_role |
ask_about_shifts_nobody_closed | — | void | definer | service_role |
asset_company | object_name text | uuid | invoker | anon, authenticated, service_role |
asset_dataroom_writer_may_write | object_name text | boolean | definer | anon, authenticated, service_role |
asset_is_own_upload | object_name text | boolean | invoker | anon, authenticated, service_role |
asset_is_transfer_copy | object_name text | boolean | invoker | anon, authenticated, service_role |
asset_reader_may_read | object_name text | boolean | definer | anon, authenticated, service_role |
asset_scope | object_name text | text | invoker | anon, authenticated, service_role |
asset_segment | object_name text, segment_index integer | text | invoker | anon, authenticated, service_role |
asset_uuid | object_name text, segment_index integer | uuid | invoker | anon, authenticated, service_role |
attendance_add | target_member uuid, kind attendance_kind, local_date date, local_time time without time zone, location text, reason text | jsonb | definer | authenticated |
attendance_backdated_after_minutes | — | integer | invoker | authenticated, service_role |
attendance_change_undo | event_id uuid | jsonb | definer | authenticated |
attendance_changes_page | from_timestamp timestamp with time zone, to_timestamp timestamp with time zone, page_offset integer DEFAULT 0, page_limit integer DEFAULT 24, team_search text DEFAULT ''::text, actor_search text DEFAULT ''::text, selected_members uuid[] DEFAULT NULL::uuid[], selected_team_key text DEFAULT NULL::text, selected_actor uuid DEFAULT NULL::uuid | jsonb | invoker | anon, authenticated, service_role |
attendance_correct | corrections jsonb, reason text | jsonb | definer | authenticated |
attendance_correction_window_minutes | — | integer | invoker | authenticated, service_role |
attendance_current | — | jsonb | invoker | authenticated |
attendance_leave_policy_save | target_policy jsonb | jsonb | definer | authenticated |
attendance_policy_save | target_company uuid, attendance_work_policy jsonb | void | invoker | service_role |
attendance_reconciliation_save | target_company uuid, attendance_work_policy jsonb, attendance_calendar jsonb | void | invoker | service_role |
attendance_remove | event_id uuid, reason text | jsonb | definer | authenticated |
attendance_server_time | — | timestamp with time zone | invoker | authenticated, service_role |
attendance_team_page | page_kind text DEFAULT 'teams'::text, team_offset integer DEFAULT 0, team_limit integer DEFAULT 12, selected_team_key text DEFAULT NULL::text, member_offset integer DEFAULT 0, member_limit integer DEFAULT 24, search_text text DEFAULT ''::text, location_filter text DEFAULT ''::text | jsonb | invoker | authenticated |
attendance_work_policies | — | TABLE(member_id uuid, work_hours jsonb, minimum_daily_minutes integer, work_mode text, work_policy jsonb) | definer | anon, authenticated, service_role |
attendance_work_policy_save | target_policy jsonb | jsonb | definer | authenticated |
box_pairing_attempts_remain | claiming_company uuid | boolean | definer | nobody |
calendar_subscription_company | target_token_hash text | uuid | definer | service_role |
calendar_subscription_save | target_token_hash text | void | definer | authenticated |
can_manage_task_relationship | target_task_id uuid | boolean | definer | nobody |
circle_channel_add | target_company uuid, target_circle text, channel_name text | void | definer | authenticated, service_role |
circle_channel_delete | target_company uuid, target_circle text, confirmed_name text | void | definer | authenticated, service_role |
circle_set | target_company uuid, circle_id text, circle_name text, readable_categories text[] | void | definer | authenticated, service_role |
claim_empty_box | claiming_company uuid, box_key text, ticket_hash text, fresh_since timestamp with time zone | TABLE(outcome text, encryption_key text) | definer | service_role |
company_documents_matching | target_query text, target_limit integer, minimum_relevance real DEFAULT 0 | SETOF company_document | invoker | authenticated |
company_holidays_merge | target_company uuid, target_holidays jsonb | jsonb | invoker | service_role |
company_holidays_save | target_holidays jsonb | jsonb | definer | authenticated |
company_of_member | target_member uuid | uuid | invoker | authenticated, service_role |
company_of_messenger_address | address_slug text | uuid | definer | anon, authenticated, service_role |
company_of_task | target_task uuid | uuid | invoker | authenticated, service_role |
company_of_team | target_team uuid | uuid | invoker | authenticated, service_role |
company_topic | target_company uuid | text | invoker | anon, authenticated, service_role |
complete_parent_when_children_are_done | parent_id uuid | void | definer | service_role |
complete_tasks_past_their_end | — | void | definer | service_role |
conversation_mute | conversation text | void | definer | anon, authenticated, service_role |
conversation_unmute | conversation text | void | definer | anon, authenticated, service_role |
crm_opportunity_close | target_opportunity_id uuid, target_stage_id crm_stage, target_stage_position integer, target_stage_changed_at timestamp with time zone, target_lost_reason text, target_base_amount_minor bigint, target_base_currency_code text | opportunity | invoker | authenticated |
crm_opportunity_hand_over | target_opportunity_id uuid, target_owner_id uuid | opportunity | definer | authenticated |
crm_vocabulary_save | target_vocabulary jsonb | jsonb | definer | authenticated |
data_room_administrator | target_company uuid | boolean | definer | anon, authenticated, service_role |
data_room_circle_categories | target_company uuid, target_circle text | text[] | definer | authenticated, service_role |
data_room_circle_company | target_company uuid, target_circle text | jsonb | definer | anon, authenticated, service_role |
data_room_company | target_company uuid | jsonb | definer | anon, authenticated, service_role |
data_room_document_readable | document company_document | boolean | definer | anon, authenticated, service_role |
data_room_document_writable | document company_document | boolean | definer | anon, authenticated, service_role |
data_room_field_set | target_company uuid, target_field text, target_category text | void | invoker | anon, authenticated, service_role |
data_room_link_create | target_company uuid, circle_id text, label text, access_code text, lifetime_hours integer DEFAULT 72, can_download boolean DEFAULT false | uuid | definer | authenticated, service_role |
data_room_link_revoke | target_link uuid | void | definer | authenticated, service_role |
data_room_link_unlock | target_link uuid, access_code text, notice_version text, client_fingerprint text | jsonb | definer | service_role |
data_room_may_read | target_company uuid, target_category text, download boolean DEFAULT false | boolean | definer | anon, authenticated, service_role |
data_room_member | target_company uuid | uuid | definer | anon, authenticated, service_role |
data_room_share_accept | target_share uuid | uuid | definer | authenticated, service_role |
data_room_share_applies | share data_room_share | boolean | definer | anon, authenticated, service_role |
data_room_share_create | target_company uuid, circle_id text, audience text, recipient_email text DEFAULT NULL::text, expires_at timestamp with time zone DEFAULT NULL::timestamp with time zone, can_download boolean DEFAULT false | uuid | definer | authenticated, service_role |
data_room_share_revoke | target_share uuid | void | definer | authenticated, service_role |
data_room_shareable_circles | target_company uuid, download boolean DEFAULT false | text[] | definer | authenticated, service_role |
data_room_visible_category | target_company uuid, target_category text | boolean | definer | anon, authenticated, service_role |
digest_app_url_keep | new_app_url text | boolean | definer | service_role |
digest_target_keep | new_project_url text | void | definer | service_role |
expired_transfer_copies | kept_days integer | SETOF text | definer | authenticated, service_role |
fcm_key_keep | new_project_id text, new_client_email text, new_private_key text | void | definer | service_role |
is_a_scheduled_job | presented text | boolean | definer | service_role |
is_company_admin | — | boolean | definer | anon, authenticated, service_role |
is_company_profile | profile jsonb | boolean | invoker | anon, authenticated, service_role |
is_messenger_accounts | accounts jsonb | boolean | invoker | anon, authenticated, service_role |
is_money | money jsonb | boolean | invoker | anon, authenticated, service_role |
is_public_identity_credential | kind text | boolean | definer | authenticated, service_role |
is_work_hours | schedule jsonb | boolean | invoker | anon, authenticated, service_role |
leave_accrue_due | — | jsonb | definer | authenticated, service_role |
leave_balances | target_year integer | jsonb | definer | authenticated, service_role |
leave_days_in_year | starts_at timestamp with time zone, ends_at timestamp with time zone, total_days numeric, time_zone text, target_year integer, year_start_month integer DEFAULT 1, year_start_day integer DEFAULT 1 | numeric | invoker | anon, authenticated, service_role |
leave_in_full | — | TABLE(id uuid, member_id uuid, kind text, is_paid boolean, is_deducted boolean, days numeric, status leave_status, starts_at timestamp with time zone, ends_at timestamp with time zone, note text) | definer | authenticated, service_role |
leave_management_source | — | jsonb | definer | authenticated, service_role |
leave_return_early | work_location text | jsonb | definer | authenticated, service_role |
member_circles_set | target_company uuid, target_member uuid, circle_ids text[] | void | definer | authenticated, service_role |
member_hr_file | target_member uuid | TABLE(member_id uuid, leave_days numeric, note text) | definer | authenticated, service_role |
member_leave_days | target_member uuid | numeric | definer | anon, authenticated, service_role |
member_leave_days_set | target_member uuid, granted_days numeric | numeric | definer | anon, authenticated, service_role |
member_leave_remaining | target_member uuid, target_year integer | numeric | definer | anon, authenticated, service_role |
member_locale | target_member uuid | text | definer | anon, authenticated, service_role |
member_minimum_daily_minutes | target_member uuid | integer | definer | anon, authenticated, service_role |
member_picture_keep | picture_path text | boolean | definer | authenticated, service_role |
member_secret_name | target_member uuid, target_kind text | text | invoker | anon, authenticated, service_role |
member_timezone | target_member uuid | text | definer | anon, authenticated, service_role |
member_today | target_member uuid | date | definer | anon, authenticated, service_role |
member_topic | target_member uuid | text | invoker | anon, authenticated, service_role |
member_work_hours | target_member uuid | jsonb | definer | anon, authenticated, service_role |
member_work_hours_on | target_member uuid, target_day date | jsonb | definer | anon, authenticated, service_role |
my_app_company | — | uuid | definer | anon, authenticated, service_role |
my_company_topic | — | text | definer | anon, authenticated, service_role |
my_member | — | uuid | definer | anon, authenticated, service_role |
my_member_topic | — | text | definer | anon, authenticated, service_role |
my_notification_settings | — | jsonb | definer | authenticated, service_role |
my_team | — | uuid | definer | anon, authenticated, service_role |
notification_settings_set | chosen jsonb | void | definer | anon, authenticated, service_role |
people_on_task | subject uuid | uuid[] | invoker | anon, authenticated, service_role |
person_set | target_member uuid, account_changes jsonb, organization_changes jsonb | void | definer | authenticated, service_role |
push_device_claim | device_kind text, device_address text, device_keys jsonb | void | definer | anon, authenticated, service_role |
push_device_release | device_kind text, device_address text | void | definer | anon, authenticated, service_role |
push_keys_read | — | jsonb | definer | service_role |
read_company_secret | secret_id uuid | text | definer | service_role |
read_member_secret | target_member uuid, target_kind text | text | definer | service_role |
reopen_parent_for_an_unfinished_child | parent_id uuid | void | definer | service_role |
reserve_document_number | target_company uuid, requested_prefix text | text | definer | authenticated, service_role |
size_bytes | document company_document | bigint | invoker | authenticated, service_role |
status_my_leave_request_takes | — | leave_status | definer | authenticated, service_role |
task_children_link | parent_id uuid, child_ids uuid[] | void | definer | authenticated |
task_parent_set | target_task_id uuid, target_parent_task_id uuid | void | definer | authenticated |
task_save | target_task_id uuid, target_title text, target_status task_status DEFAULT NULL::task_status, target_note text DEFAULT NULL::text, target_location jsonb DEFAULT NULL::jsonb, target_business text DEFAULT NULL::text, target_type text DEFAULT NULL::text, target_size text DEFAULT NULL::text, target_starts_at timestamp with time zone DEFAULT NULL::timestamp with time zone, target_ends_at timestamp with time zone DEFAULT NULL::timestamp with time zone, target_write_dates boolean DEFAULT true, target_is_event boolean DEFAULT false, target_is_whole_day boolean DEFAULT false, target_notify_minutes_before integer DEFAULT NULL::integer, target_participant_ids uuid[] DEFAULT '{}'::uuid[], target_parent_task_id uuid DEFAULT NULL::uuid, target_expected_updated_at timestamp with time zone DEFAULT NULL::timestamp with time zone, target_mirrors jsonb DEFAULT NULL::jsonb, target_is_open_to_company boolean DEFAULT NULL::boolean | uuid | definer | authenticated |
task_vocabulary_save | target_vocabulary jsonb | jsonb | definer | authenticated |
team_add | new_name text, parent_team uuid, new_position integer | uuid | definer | authenticated, service_role |
team_delete | target_team uuid | integer | definer | authenticated, service_role |
team_update | target_team uuid, changes jsonb | void | definer | authenticated, service_role |
vapid_keys_keep | new_public_key text, new_private_key text, new_subject text, replace_existing boolean DEFAULT false | boolean | definer | service_role |
vapid_keys_read | — | jsonb | definer | service_role |
vapid_public_key | — | text | definer | authenticated, service_role |
vault_secret_keep | secret_name text, secret_value text | void | definer | service_role |
verify_box_pairing_code | claiming_company uuid, box_key text, code_hash text, ticket_hash text, fresh_since timestamp with time zone | TABLE(outcome text, host_name text, public_address text) | definer | service_role |
work_location_names | company_id uuid | text[] | invoker | anon, authenticated, service_role |
work_mode_of_member | target_member uuid | text | definer | authenticated, service_role |
write_company_secret | secret_id uuid, secret_name text, secret_value text | uuid | definer | service_role |
write_member_secret | target_member uuid, target_kind text, secret_value text | uuid | definer | service_role |
Trigger functions
These run when a row changes. Nobody calls them.
| Name |
|---|
abandon_the_profile_image |
announce_task_write |
bind_member_to_new_user |
data_room_guard_category |
data_room_guard_document |
derive_task_status_from_dates |
enforce_crm_reference_consistency |
follow_children_completion |
guard_task_authority_shape |
guard_task_status_against_dates |
leave_carries_the_terms_of_its_kind |
leave_granted_to_a_new_member |
leave_grants_restart_when_the_opening_rule_changes |
leave_stays_within_its_units |
leave_stays_within_its_usage_limit |
leave_under_autonomous_work_is_taken_not_asked |
lock_task_requester |
member_leave_days_follow_the_leave |
member_leave_days_follow_the_leave_policy |
order_time_range |
record_attendance_change_actor |
record_opportunity_stage_change |
refuse_a_second_copy_of_an_event |
refuse_task_parent_cycle |
resolve_attendance |
stamp_company_document_update |
stamp_crm_record |
stamp_task_on_participant_change |
stamp_task_update |
sync_member_email_from_user |
validate_attendance_correction |
validate_attendance_update_order |
withdraw_member_on_user_deleted |