GET https://qrlew.sarus.app/ HTTP/1.2 ### Check the public key GET https://qrlew.sarus.app/public_key HTTP/1.2 ### Get a dot representation of the Relation POST https://qrlew.sarus.app/dot HTTP/1.2 content-type: application/json {"dataset":{"tables":[{"name":"table_1","path":["schema","table_1"],"schema":{"fields":[{"name":"a","data_type":"Float"},{"name":"b","data_type":"Integer"}]},"size":10000}]},"query":"SELECT * FROM table_1","dark_mode":false} ### Get the pup version of the relation POST https://qrlew.sarus.app/rewrite_as_privacy_unit_preserving HTTP/1.2 content-type: application/json {"dataset":{"tables":[{"name":"user_table","path":["schema","user_table"],"schema":{"fields":[{"name":"id","data_type":"Integer"},{"name":"name","data_type":"Text"},{"name":"age","data_type":"Integer"},{"name":"weight","data_type":"Float"}]},"size":10000},{"name":"action_table","path":["schema","action_table"],"schema":{"fields":[{"name":"action","data_type":"Text"},{"name":"user_id","data_type":"Integer"},{"name":"duration","data_type":"Float"}]},"size":10000}]},"query":"SELECT * FROM action_table","synthetic_data":[["user_table","synthetic_user_table"],["action_table","synthetic_action_table"]],"privacy_unit":[["user_table",[],"id"],["action_table",[["user_id","user_table","id"]],"id"]],"epsilon":1.0,"delta":0.00001} ### Get the dp version of the relation POST https://qrlew.sarus.app/rewrite_with_differential_privacy HTTP/1.2 content-type: application/json {"dataset":{"tables":[{"name":"user_table","path":["schema","user_table"],"schema":{"fields":[{"name":"id","data_type":"Integer"},{"name":"name","data_type":"Text"},{"name":"age","data_type":"Integer"},{"name":"weight","data_type":"Float"}]},"size":10000},{"name":"action_table","path":["schema","action_table"],"schema":{"fields":[{"name":"action","data_type":"Text"},{"name":"user_id","data_type":"Integer"},{"name":"duration","data_type":"Float"}]},"size":10000}]},"query":"SELECT sum(duration) FROM action_table WHERE duration > 0 AND duration < 24","synthetic_data":[["user_table","synthetic_user_table"],["action_table","synthetic_action_table"]],"privacy_unit":[["user_table",[],"id"],["action_table",[["user_id","user_table","id"]],"id"]],"epsilon":1.0,"delta":0.00001} ### Verify the dp version of the relation POST https://qrlew.sarus.app/verify HTTP/1.2 content-type: application/json { "value": "WITH join_8sh3 (field_p7b0, field_sjgm, field_bhim, field_0lza, field_hbhz, field_vyw9, field_4wsv) AS (SELECT * FROM schema.user_table AS _LEFT_ JOIN schema.action_table AS _RIGHT_ ON (_RIGHT_.user_id) = (_LEFT_.id)), map_856z (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, action, user_id, duration) AS (SELECT md5(CAST(field_p7b0 AS VARCHAR)) AS _PRIVACY_UNIT_, 1 AS _PRIVACY_UNIT_WEIGHT_, field_hbhz AS action, field_vyw9 AS user_id, field_4wsv AS duration FROM join_8sh3), map_kzp0 (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_ AS _PRIVACY_UNIT_WEIGHT_, duration AS field_8mze FROM map_856z WHERE ((duration) > (0)) AND ((duration) < (24))), map_8nnn (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze) AS (SELECT coalesce(CAST(_PRIVACY_UNIT_ AS VARCHAR), '_PRIVACY_UNIT_DEFAULT_') AS _PRIVACY_UNIT_, coalesce(_PRIVACY_UNIT_WEIGHT_, 0) AS _PRIVACY_UNIT_WEIGHT_, field_8mze AS field_8mze FROM map_kzp0), map_64r_ (field_b_lu, field_grep) AS (SELECT field_8mze AS field_b_lu, _PRIVACY_UNIT_ AS field_grep FROM map_8nnn), reduce_6h05 (_PRIVACY_UNIT_, field_8mze) AS (SELECT field_grep AS _PRIVACY_UNIT_, sum(field_b_lu) AS field_8mze FROM map_64r_ GROUP BY field_grep), map_g3ef (_PRIVACY_UNIT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, abs((field_8mze) * ((field_8mze))) AS field_8mze FROM reduce_6h05), map_5gyf (field_b_lu, field_grep) AS (SELECT field_8mze AS field_b_lu, _PRIVACY_UNIT_ AS field_grep FROM map_g3ef), reduce_cwsy (_PRIVACY_UNIT_, field_8mze) AS (SELECT field_grep AS _PRIVACY_UNIT_, sum(field_b_lu) AS field_8mze FROM map_5gyf GROUP BY field_grep), map_xxe2 (_PRIVACY_UNIT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, (1) / ((greatest(1, (sqrt(field_8mze)) / ((24))))) AS field_8mze FROM reduce_cwsy), join_h7f_ (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze) AS (SELECT * FROM map_8nnn AS _LEFT_ JOIN map_xxe2 AS _RIGHT_ ON (_LEFT_._PRIVACY_UNIT_) = (_RIGHT_._PRIVACY_UNIT_)), map_70al (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_ AS _PRIVACY_UNIT_WEIGHT_, (field_8mze) * ((_SCALE_FACTOR_field_8mze)) AS field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_ AS _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze AS _SCALE_FACTOR_field_8mze FROM join_h7f_), map_pfee (field_b_lu) AS (SELECT field_8mze AS field_b_lu FROM map_70al), reduce_eriw (field_8mze) AS (SELECT sum(field_b_lu) AS field_8mze FROM map_pfee), map_wn5p (_SUM_field_8mze) AS (SELECT least(2400000000, greatest(0, (coalesce(field_8mze, 0)) + ((116.27532630252934) * (((sqrt((-2) * ((ln(random()))))) * ((cos((6.283185307179586) * ((random())))))))))) AS _SUM_field_8mze FROM reduce_eriw), map_t2mo (field_nnl2) AS (SELECT _SUM_field_8mze AS field_nnl2 FROM map_wn5p) SELECT * FROM map_t2mo", "signature": "DOB9xjsz6KxlL3nl6hYf5ZwVzm7/WGj/CaCY99hC3NMydgLcmr7dA3+gTyFwI6FDelJdB57DJ/MvC+R9LFelZDr14QbqULL9WxJlWN8DG5wpc9ThR1s8bKzC1ZZDOXVV1gI7iLbjzAgdaIhhfnyYMv2EjOteWtZm59YOEWVsVM8UcHhcL9yKzxin3y0oIjTDuy6ujZprM4/NaTFDefqiDDksabZdGIooR4rB03Yhl6TlF4E3feyqeGV1IQgo687udXAKF0ikDntSdnPxsVFxCQxGxrsbn1N5HedZSJmaH5xt7Cbyn/PrEN+jYt/tXyRJUfR0T/UlXr2aF6OXRCa/NA" } ### Verify the dp version of the relation (altered request) POST https://qrlew.sarus.app/verify HTTP/1.2 content-type: application/json { "value": "WITH _join_8sh3 (field_p7b0, field_sjgm, field_bhim, field_0lza, field_hbhz, field_vyw9, field_4wsv) AS (SELECT * FROM schema.user_table AS _LEFT_ JOIN schema.action_table AS _RIGHT_ ON (_RIGHT_.user_id) = (_LEFT_.id)), map_856z (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, action, user_id, duration) AS (SELECT md5(CAST(field_p7b0 AS VARCHAR)) AS _PRIVACY_UNIT_, 1 AS _PRIVACY_UNIT_WEIGHT_, field_hbhz AS action, field_vyw9 AS user_id, field_4wsv AS duration FROM join_8sh3), map_kzp0 (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_ AS _PRIVACY_UNIT_WEIGHT_, duration AS field_8mze FROM map_856z WHERE ((duration) > (0)) AND ((duration) < (24))), map_8nnn (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze) AS (SELECT coalesce(CAST(_PRIVACY_UNIT_ AS VARCHAR), '_PRIVACY_UNIT_DEFAULT_') AS _PRIVACY_UNIT_, coalesce(_PRIVACY_UNIT_WEIGHT_, 0) AS _PRIVACY_UNIT_WEIGHT_, field_8mze AS field_8mze FROM map_kzp0), map_64r_ (field_b_lu, field_grep) AS (SELECT field_8mze AS field_b_lu, _PRIVACY_UNIT_ AS field_grep FROM map_8nnn), reduce_6h05 (_PRIVACY_UNIT_, field_8mze) AS (SELECT field_grep AS _PRIVACY_UNIT_, sum(field_b_lu) AS field_8mze FROM map_64r_ GROUP BY field_grep), map_g3ef (_PRIVACY_UNIT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, abs((field_8mze) * ((field_8mze))) AS field_8mze FROM reduce_6h05), map_5gyf (field_b_lu, field_grep) AS (SELECT field_8mze AS field_b_lu, _PRIVACY_UNIT_ AS field_grep FROM map_g3ef), reduce_cwsy (_PRIVACY_UNIT_, field_8mze) AS (SELECT field_grep AS _PRIVACY_UNIT_, sum(field_b_lu) AS field_8mze FROM map_5gyf GROUP BY field_grep), map_xxe2 (_PRIVACY_UNIT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, (1) / ((greatest(1, (sqrt(field_8mze)) / ((24))))) AS field_8mze FROM reduce_cwsy), join_h7f_ (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze) AS (SELECT * FROM map_8nnn AS _LEFT_ JOIN map_xxe2 AS _RIGHT_ ON (_LEFT_._PRIVACY_UNIT_) = (_RIGHT_._PRIVACY_UNIT_)), map_70al (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_ AS _PRIVACY_UNIT_WEIGHT_, (field_8mze) * ((_SCALE_FACTOR_field_8mze)) AS field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_ AS _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze AS _SCALE_FACTOR_field_8mze FROM join_h7f_), map_pfee (field_b_lu) AS (SELECT field_8mze AS field_b_lu FROM map_70al), reduce_eriw (field_8mze) AS (SELECT sum(field_b_lu) AS field_8mze FROM map_pfee), map_wn5p (_SUM_field_8mze) AS (SELECT least(2400000000, greatest(0, (coalesce(field_8mze, 0)) + ((116.27532630252934) * (((sqrt((-2) * ((ln(random()))))) * ((cos((6.283185307179586) * ((random())))))))))) AS _SUM_field_8mze FROM reduce_eriw), map_t2mo (field_nnl2) AS (SELECT _SUM_field_8mze AS field_nnl2 FROM map_wn5p) SELECT * FROM map_t2mo", "signature": "DOB9xjsz6KxlL3nl6hYf5ZwVzm7/WGj/CaCY99hC3NMydgLcmr7dA3+gTyFwI6FDelJdB57DJ/MvC+R9LFelZDr14QbqULL9WxJlWN8DG5wpc9ThR1s8bKzC1ZZDOXVV1gI7iLbjzAgdaIhhfnyYMv2EjOteWtZm59YOEWVsVM8UcHhcL9yKzxin3y0oIjTDuy6ujZprM4/NaTFDefqiDDksabZdGIooR4rB03Yhl6TlF4E3feyqeGV1IQgo687udXAKF0ikDntSdnPxsVFxCQxGxrsbn1N5HedZSJmaH5xt7Cbyn/PrEN+jYt/tXyRJUfR0T/UlXr2aF6OXRCa/NA" } ### Verify the dp version of the relation (altered signature) POST https://qrlew.sarus.app/verify HTTP/1.2 content-type: application/json { "value": "WITH join_8sh3 (field_p7b0, field_sjgm, field_bhim, field_0lza, field_hbhz, field_vyw9, field_4wsv) AS (SELECT * FROM schema.user_table AS _LEFT_ JOIN schema.action_table AS _RIGHT_ ON (_RIGHT_.user_id) = (_LEFT_.id)), map_856z (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, action, user_id, duration) AS (SELECT md5(CAST(field_p7b0 AS VARCHAR)) AS _PRIVACY_UNIT_, 1 AS _PRIVACY_UNIT_WEIGHT_, field_hbhz AS action, field_vyw9 AS user_id, field_4wsv AS duration FROM join_8sh3), map_kzp0 (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_ AS _PRIVACY_UNIT_WEIGHT_, duration AS field_8mze FROM map_856z WHERE ((duration) > (0)) AND ((duration) < (24))), map_8nnn (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze) AS (SELECT coalesce(CAST(_PRIVACY_UNIT_ AS VARCHAR), '_PRIVACY_UNIT_DEFAULT_') AS _PRIVACY_UNIT_, coalesce(_PRIVACY_UNIT_WEIGHT_, 0) AS _PRIVACY_UNIT_WEIGHT_, field_8mze AS field_8mze FROM map_kzp0), map_64r_ (field_b_lu, field_grep) AS (SELECT field_8mze AS field_b_lu, _PRIVACY_UNIT_ AS field_grep FROM map_8nnn), reduce_6h05 (_PRIVACY_UNIT_, field_8mze) AS (SELECT field_grep AS _PRIVACY_UNIT_, sum(field_b_lu) AS field_8mze FROM map_64r_ GROUP BY field_grep), map_g3ef (_PRIVACY_UNIT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, abs((field_8mze) * ((field_8mze))) AS field_8mze FROM reduce_6h05), map_5gyf (field_b_lu, field_grep) AS (SELECT field_8mze AS field_b_lu, _PRIVACY_UNIT_ AS field_grep FROM map_g3ef), reduce_cwsy (_PRIVACY_UNIT_, field_8mze) AS (SELECT field_grep AS _PRIVACY_UNIT_, sum(field_b_lu) AS field_8mze FROM map_5gyf GROUP BY field_grep), map_xxe2 (_PRIVACY_UNIT_, field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, (1) / ((greatest(1, (sqrt(field_8mze)) / ((24))))) AS field_8mze FROM reduce_cwsy), join_h7f_ (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze) AS (SELECT * FROM map_8nnn AS _LEFT_ JOIN map_xxe2 AS _RIGHT_ ON (_LEFT_._PRIVACY_UNIT_) = (_RIGHT_._PRIVACY_UNIT_)), map_70al (_PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_, field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze) AS (SELECT _PRIVACY_UNIT_ AS _PRIVACY_UNIT_, _PRIVACY_UNIT_WEIGHT_ AS _PRIVACY_UNIT_WEIGHT_, (field_8mze) * ((_SCALE_FACTOR_field_8mze)) AS field_8mze, _SCALE_FACTOR__PRIVACY_UNIT_ AS _SCALE_FACTOR__PRIVACY_UNIT_, _SCALE_FACTOR_field_8mze AS _SCALE_FACTOR_field_8mze FROM join_h7f_), map_pfee (field_b_lu) AS (SELECT field_8mze AS field_b_lu FROM map_70al), reduce_eriw (field_8mze) AS (SELECT sum(field_b_lu) AS field_8mze FROM map_pfee), map_wn5p (_SUM_field_8mze) AS (SELECT least(2400000000, greatest(0, (coalesce(field_8mze, 0)) + ((116.27532630252934) * (((sqrt((-2) * ((ln(random()))))) * ((cos((6.283185307179586) * ((random())))))))))) AS _SUM_field_8mze FROM reduce_eriw), map_t2mo (field_nnl2) AS (SELECT _SUM_field_8mze AS field_nnl2 FROM map_wn5p) SELECT * FROM map_t2mo", "signature": "_DOB9xjsz6KxlL3nl6hYf5ZwVzm7/WGj/CaCY99hC3NMydgLcmr7dA3+gTyFwI6FDelJdB57DJ/MvC+R9LFelZDr14QbqULL9WxJlWN8DG5wpc9ThR1s8bKzC1ZZDOXVV1gI7iLbjzAgdaIhhfnyYMv2EjOteWtZm59YOEWVsVM8UcHhcL9yKzxin3y0oIjTDuy6ujZprM4/NaTFDefqiDDksabZdGIooR4rB03Yhl6TlF4E3feyqeGV1IQgo687udXAKF0ikDntSdnPxsVFxCQxGxrsbn1N5HedZSJmaH5xt7Cbyn/PrEN+jYt/tXyRJUfR0T/UlXr2aF6OXRCa/NA" } ### Get the pup version of the relation and its graphviz/dot representation POST https://qrlew.sarus.app/rewrite_as_privacy_unit_preserving_with_dot HTTP/1.2 content-type: application/json {"dataset":{"tables":[{"name":"user_table","path":["schema","user_table"],"schema":{"fields":[{"name":"id","data_type":"Integer"},{"name":"name","data_type":"Text"},{"name":"age","data_type":"Integer"},{"name":"weight","data_type":"Float"}]},"size":10000},{"name":"action_table","path":["schema","action_table"],"schema":{"fields":[{"name":"action","data_type":"Text"},{"name":"user_id","data_type":"Integer"},{"name":"duration","data_type":"Float"}]},"size":10000}]},"query":"SELECT * FROM action_table","synthetic_data":[["user_table","synthetic_user_table"],["action_table","synthetic_action_table"]],"privacy_unit":[["user_table",[],"id"],["action_table",[["user_id","user_table","id"]],"id"]],"epsilon":1.0,"delta":0.00001,"dark_mode":false} ### Get the dp version of the relation and its graphviz/dot representation POST https://qrlew.sarus.app/rewrite_with_differential_privacy_with_dot HTTP/1.2 content-type: application/json {"dataset":{"tables":[{"name":"user_table","path":["schema","user_table"],"schema":{"fields":[{"name":"id","data_type":"Integer"},{"name":"name","data_type":"Text"},{"name":"age","data_type":"Integer"},{"name":"weight","data_type":"Float"}]},"size":10000},{"name":"action_table","path":["schema","action_table"],"schema":{"fields":[{"name":"action","data_type":"Text"},{"name":"user_id","data_type":"Integer"},{"name":"duration","data_type":"Float"}]},"size":10000}]},"query":"SELECT sum(duration) FROM action_table WHERE duration > 0 AND duration < 24","synthetic_data":[["user_table","synthetic_user_table"],["action_table","synthetic_action_table"]],"privacy_unit":[["user_table",[],"id"],["action_table",[["user_id","user_table","id"]],"id"]],"epsilon":1.0,"delta":0.00001,"dark_mode":false}