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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -179,4 +179,4 @@ dist
cipherstash-proxy.toml

# turbo repo
.turbo
.turbo
38 changes: 38 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
set dotenv-load
set positional-arguments


test_dsl:
#!/usr/bin/env bash
set -euxo pipefail

PGPASSWORD=$CS_DATABASE__PASSWORD dropdb --force --if-exists --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
PGPASSWORD=$CS_DATABASE__PASSWORD createdb --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test

connection_url=postgresql://$CS_DATABASE__USERNAME:@localhost:$CS_DATABASE__PORT/cs_migrator_test
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-core.sql
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-config-schema.sql
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-config-functions.sql
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/dsl-encryptindex.sql

# tests
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/core.sql
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/config.sql
PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/encryptindex.sql

dropdb --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test


build:
#!/usr/bin/env bash
set -euxo pipefail

cat sql/dsl-core.sql sql/dsl-config-schema.sql sql/dsl-config-functions.sql sql/dsl-encryptindex.sql > release/cipherstash-encrypt-dsl.sql


psql:
psql postgresql://$CS_USERNAME:$CS_PASSWORD@localhost:$CS_PORT/$CS_DATABASE__NAME


psql_direct:
psql --user $CS_DATABASE__USERNAME --dbname $CS_DATABASE__NAME --port $CS_DATABASE__PORT
15 changes: 7 additions & 8 deletions languages/go/xorm/cipherstash-encrypt-dsl.sql
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ BEGIN ATOMIC
RETURN cs_unique_v1_v0_0(col);
END;

-- extracts json containment index from an encrypted column
-- extracts json ste_vec index from an encrypted column
CREATE OR REPLACE FUNCTION cs_ste_vec_v1_v0_0(col jsonb)
RETURNS cs_ste_vec_index_v1
LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
Expand Down Expand Up @@ -233,7 +233,7 @@ CREATE FUNCTION _cs_config_check_indexes(val jsonb)
RETURNS BOOLEAN
LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
BEGIN ATOMIC
SELECT jsonb_object_keys(jsonb_path_query(val, '$.tables.*.*.indexes')) = ANY('{match, ore, unique, json}');
SELECT jsonb_object_keys(jsonb_path_query(val, '$.tables.*.*.indexes')) = ANY('{match, ore, unique, ste_vec}');
END;


Expand Down Expand Up @@ -299,7 +299,7 @@ DROP FUNCTION IF EXISTS cs_discard_v1();
DROP FUNCTION IF EXISTS cs_refresh_encrypt_config();

DROP FUNCTION IF EXISTS _cs_config_default();
DROP FUNCTION IF EXISTS _cs_config_match_1_default();
DROP FUNCTION IF EXISTS _cs_config_match_default();

DROP FUNCTION IF EXISTS _cs_config_add_table(text, json);
DROP FUNCTION IF EXISTS _cs_config_add_column(text, text, json);
Expand Down Expand Up @@ -328,8 +328,7 @@ AS $$
tbl jsonb;
BEGIN
IF NOT config #> array['tables'] ? table_name THEN
SELECT jsonb_build_object(table_name, jsonb_build_object()) into tbl;
SELECT jsonb_set(config, array['tables'], tbl) INTO config;
SELECT jsonb_insert(config, array['tables', table_name], jsonb_build_object()) INTO config;
END IF;
RETURN config;
END;
Expand Down Expand Up @@ -377,9 +376,9 @@ $$ LANGUAGE plpgsql;


--
-- Default options for match_1 index
-- Default options for match index
--
CREATE FUNCTION _cs_config_match_1_default()
CREATE FUNCTION _cs_config_match_default()
RETURNS jsonb
LANGUAGE sql STRICT PARALLEL SAFE
BEGIN ATOMIC
Expand Down Expand Up @@ -425,7 +424,7 @@ AS $$

-- set default options for index if opts empty
IF index_name = 'match' AND opts = '{}' THEN
SELECT _cs_config_match_1_default() INTO opts;
SELECT _cs_config_match_default() INTO opts;
END IF;

SELECT _cs_config_add_index(table_name, column_name, index_name, opts, _config) INTO _config;
Expand Down
Loading