mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-05 07:26:36 +08:00
feat(waf): add composable rule graph core
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
-- +goose Up
|
||||
ALTER TABLE of_waf_rule_groups
|
||||
ADD COLUMN graph TEXT NOT NULL DEFAULT '',
|
||||
ADD COLUMN revision BIGINT NOT NULL DEFAULT 1;
|
||||
|
||||
ALTER TABLE of_waf_rule_group_bindings
|
||||
ADD COLUMN sequence INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE of_waf_rule_group_bindings DROP COLUMN sequence;
|
||||
ALTER TABLE of_waf_rule_groups DROP COLUMN revision, DROP COLUMN graph;
|
||||
@@ -0,0 +1,17 @@
|
||||
-- +goose Up
|
||||
UPDATE of_waf_rule_groups
|
||||
SET graph = '{"schema_version":1,"nodes":[{"id":"start","type":"start","position":{"x":0,"y":0},"config":{}},{"id":"allow","type":"allow","position":{"x":320,"y":0},"config":{}}],"edges":[{"id":"start-allow","source":"start","source_handle":"next","target":"allow"}]}',
|
||||
revision = 1;
|
||||
|
||||
WITH ordered AS (
|
||||
SELECT id, ROW_NUMBER() OVER (PARTITION BY proxy_route_id ORDER BY id) - 1 AS new_sequence
|
||||
FROM of_waf_rule_group_bindings
|
||||
)
|
||||
UPDATE of_waf_rule_group_bindings AS binding
|
||||
SET sequence = ordered.new_sequence
|
||||
FROM ordered
|
||||
WHERE binding.id = ordered.id;
|
||||
|
||||
-- +goose Down
|
||||
UPDATE of_waf_rule_group_bindings SET sequence = 0;
|
||||
UPDATE of_waf_rule_groups SET revision = 1;
|
||||
@@ -0,0 +1,10 @@
|
||||
-- +goose Up
|
||||
ALTER TABLE of_waf_rule_groups
|
||||
ADD COLUMN graph TEXT NOT NULL DEFAULT '';
|
||||
ALTER TABLE of_waf_rule_groups ADD COLUMN revision INTEGER NOT NULL DEFAULT 1;
|
||||
ALTER TABLE of_waf_rule_group_bindings ADD COLUMN sequence INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE of_waf_rule_group_bindings DROP COLUMN sequence;
|
||||
ALTER TABLE of_waf_rule_groups DROP COLUMN revision;
|
||||
ALTER TABLE of_waf_rule_groups DROP COLUMN graph;
|
||||
@@ -0,0 +1,16 @@
|
||||
-- +goose Up
|
||||
UPDATE of_waf_rule_groups
|
||||
SET graph = '{"schema_version":1,"nodes":[{"id":"start","type":"start","position":{"x":0,"y":0},"config":{}},{"id":"allow","type":"allow","position":{"x":320,"y":0},"config":{}}],"edges":[{"id":"start-allow","source":"start","source_handle":"next","target":"allow"}]}',
|
||||
revision = 1;
|
||||
|
||||
UPDATE of_waf_rule_group_bindings
|
||||
SET sequence = (
|
||||
SELECT COUNT(*)
|
||||
FROM of_waf_rule_group_bindings AS preceding
|
||||
WHERE preceding.proxy_route_id = of_waf_rule_group_bindings.proxy_route_id
|
||||
AND preceding.id < of_waf_rule_group_bindings.id
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
UPDATE of_waf_rule_group_bindings SET sequence = 0;
|
||||
UPDATE of_waf_rule_groups SET revision = 1;
|
||||
Reference in New Issue
Block a user