Skip to content

Commit

Permalink
chore: update env
Browse files Browse the repository at this point in the history
  • Loading branch information
appflowy committed Aug 16, 2023
1 parent f85d948 commit 73b7a8a
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 9 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/supabase_migration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
- name: Create .env file
run: |
touch .env.ci
echo SUPABASE_DB=${{ secrets.SUPABASE_DB }} >> .env.dev
echo SUPABASE_DB_USER=${{ secrets.SUPABASE_DB_USER }} >> .env.dev
echo SUPABASE_DB_PORT=${{ secrets.SUPABASE_DB_PORT }} >> .env.dev
echo SUPABASE_DB_PASSWORD=${{ secrets.SUPABASE_DB_PASSWORD }} >> .env.dev
echo SUPABASE_DB=${{ secrets.SUPABASE_DB }} >> .env.ci
echo SUPABASE_DB_USER=${{ secrets.SUPABASE_DB_USER }} >> .env.ci
echo SUPABASE_DB_PORT=${{ secrets.SUPABASE_DB_PORT }} >> .env.ci
echo SUPABASE_DB_PASSWORD=${{ secrets.SUPABASE_DB_PASSWORD }} >> .env.ci
- uses: Swatinem/rust-cache@v2
with:
Expand Down
57 changes: 52 additions & 5 deletions postgres/migrations/V3__awareness.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,19 @@ VALUES IN (5);
-- Add the encrypt column to the af_collab_update table. If the encrypt column is
-- null, then the update is not encrypted.
ALTER TABLE af_collab_update
ADD COLUMN encrypt INTEGER DEFAULT NULL;

ADD COLUMN encrypt INTEGER DEFAULT 0;
-- Add encryption_sign column to the af_user table
ALTER TABLE af_user
ADD COLUMN encryption_sign TEXT;
CREATE OR REPLACE FUNCTION prevent_reset_encryption_sign_func() RETURNS TRIGGER AS $$ BEGIN IF OLD.encryption_sign IS NOT NULL
AND NEW.encryption_sign IS DISTINCT
FROM OLD.encryption_sign THEN RAISE EXCEPTION 'encryption_sign can not be reset once it has been set';
FROM OLD.encryption_sign THEN RAISE EXCEPTION 'The encryption sign can not be reset once it has been set';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trigger_prevent_reset_encryption_sign BEFORE
UPDATE ON af_user FOR EACH ROW EXECUTE FUNCTION prevent_reset_encryption_sign_func();

-- Re-create the af_user_profile_view to show the 'encrypt' column in the view.
DROP VIEW af_user_profile_view;
CREATE VIEW af_user_profile_view AS
Expand All @@ -37,4 +35,53 @@ FROM af_user u
AND w.rn = 1;
-- Currently, we aren't using the JWT token for requests, so there's no need to validate
-- auth.jwt() ->> 'email' against the email.
ALTER POLICY af_user_update_policy ON public.af_user USING (true) WITH CHECK (true);
ALTER POLICY af_user_update_policy ON public.af_user USING (true) WITH CHECK (true);
-- Update the flush_collab_updates function that accept a new column called encrypt
CREATE OR REPLACE FUNCTION public.flush_collab_updates_v3(
oid TEXT,
new_value BYTEA,
encrypt INTEGER,
md5 TEXT,
value_size INTEGER,
partition_key INTEGER,
uid BIGINT,
workspace_id UUID,
removed_keys BIGINT [],
did TEXT
) RETURNS void AS $$
DECLARE lock_key INTEGER;
BEGIN -- Hashing the oid to an integer for the advisory lock
lock_key := (hashtext(oid)::bigint)::integer;
-- Getting a session level lock
PERFORM pg_advisory_lock(lock_key);
-- Deleting rows with keys in removed_keys
DELETE FROM af_collab_update
WHERE key = ANY (removed_keys);
-- Inserting a new update with the new key and value
INSERT INTO af_collab_update(
oid,
value,
encrypt,
md5,
value_size,
partition_key,
uid,
workspace_id,
did
)
VALUES (
oid,
new_value,
encrypt,
md5,
value_size,
partition_key,
uid,
workspace_id,
did
);
-- Releasing the lock
PERFORM pg_advisory_unlock(lock_key);
RETURN;
END;
$$ LANGUAGE plpgsql;

0 comments on commit 73b7a8a

Please sign in to comment.