Skip to content

Commit 106b999

Browse files
authored
Rename views, upgrade gravity database and bump gravity databae version (pi-hole#6386)
2 parents 564d917 + 9e258e7 commit 106b999

File tree

6 files changed

+58
-9
lines changed

6 files changed

+58
-9
lines changed

advanced/Scripts/database_migration/gravity-db.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,10 @@ upgrade_gravityDB(){
150150
pihole-FTL sqlite3 -ni "${database}" < "${scriptPath}/18_to_19.sql"
151151
version=19
152152
fi
153+
if [[ "$version" == "19" ]]; then
154+
# Update views to use new allowlist/denylist names
155+
echo -e " ${INFO} Upgrading gravity database from version 19 to 20"
156+
pihole-FTL sqlite3 -ni "${database}" < "${scriptPath}/19_to_20.sql"
157+
version=20
158+
fi
153159
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
.timeout 30000
2+
3+
BEGIN TRANSACTION;
4+
5+
DROP VIEW vw_whitelist;
6+
CREATE VIEW vw_allowlist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
7+
FROM domainlist
8+
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
9+
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
10+
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
11+
AND domainlist.type = 0
12+
ORDER BY domainlist.id;
13+
14+
DROP VIEW vw_blacklist;
15+
CREATE VIEW vw_denylist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
16+
FROM domainlist
17+
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
18+
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
19+
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
20+
AND domainlist.type = 1
21+
ORDER BY domainlist.id;
22+
23+
DROP VIEW vw_regex_whitelist;
24+
CREATE VIEW vw_regex_allowlist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
25+
FROM domainlist
26+
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
27+
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
28+
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
29+
AND domainlist.type = 2
30+
ORDER BY domainlist.id;
31+
32+
DROP VIEW vw_regex_blacklist;
33+
CREATE VIEW vw_regex_denylist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
34+
FROM domainlist
35+
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
36+
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
37+
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
38+
AND domainlist.type = 3
39+
ORDER BY domainlist.id;
40+
41+
UPDATE info SET value = 20 WHERE property = 'version';
42+
43+
COMMIT;

advanced/Scripts/piholeDebug.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ dig_at() {
672672
local record_type="A"
673673
fi
674674

675-
# Find a random blocked url that has not been whitelisted and is not ABP style.
675+
# Find a random blocked url that has not been allowlisted and is not ABP style.
676676
# This helps emulate queries to different domains that a user might query
677677
# It will also give extra assurance that Pi-hole is correctly resolving and blocking domains
678678
local random_url
@@ -1088,7 +1088,7 @@ show_adlists() {
10881088
}
10891089

10901090
show_domainlist() {
1091-
show_db_entries "Domainlist (0/1 = exact white-/blacklist, 2/3 = regex white-/blacklist)" "SELECT id,CASE type WHEN '0' THEN '0 ' WHEN '1' THEN ' 1 ' WHEN '2' THEN ' 2 ' WHEN '3' THEN ' 3' ELSE type END type,CASE enabled WHEN '0' THEN ' 0' WHEN '1' THEN ' 1' ELSE enabled END enabled,GROUP_CONCAT(domainlist_by_group.group_id) group_ids,domain,datetime(date_added,'unixepoch','localtime') date_added,datetime(date_modified,'unixepoch','localtime') date_modified,comment FROM domainlist LEFT JOIN domainlist_by_group ON domainlist.id = domainlist_by_group.domainlist_id GROUP BY id;" "5 4 7 12 100 19 19 50"
1091+
show_db_entries "Domainlist (0/1 = exact allow-/denylist, 2/3 = regex allow-/denylist)" "SELECT id,CASE type WHEN '0' THEN '0 ' WHEN '1' THEN ' 1 ' WHEN '2' THEN ' 2 ' WHEN '3' THEN ' 3' ELSE type END type,CASE enabled WHEN '0' THEN ' 0' WHEN '1' THEN ' 1' ELSE enabled END enabled,GROUP_CONCAT(domainlist_by_group.group_id) group_ids,domain,datetime(date_added,'unixepoch','localtime') date_added,datetime(date_modified,'unixepoch','localtime') date_modified,comment FROM domainlist LEFT JOIN domainlist_by_group ON domainlist.id = domainlist_by_group.domainlist_id GROUP BY id;" "5 4 7 12 100 19 19 50"
10921092
}
10931093

10941094
show_clients() {

advanced/Templates/gravity.db.sql

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ CREATE TABLE info
6666
value TEXT NOT NULL
6767
);
6868

69-
INSERT INTO "info" VALUES('version','19');
69+
INSERT INTO "info" VALUES('version','20');
7070
/* This is a flag to indicate if gravity was restored from a backup
7171
false = not restored,
7272
failed = restoration failed due to no backup
@@ -111,31 +111,31 @@ CREATE TRIGGER tr_domainlist_update AFTER UPDATE ON domainlist
111111
UPDATE domainlist SET date_modified = (cast(strftime('%s', 'now') as int)) WHERE domain = NEW.domain;
112112
END;
113113

114-
CREATE VIEW vw_whitelist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
114+
CREATE VIEW vw_allowlist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
115115
FROM domainlist
116116
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
117117
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
118118
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
119119
AND domainlist.type = 0
120120
ORDER BY domainlist.id;
121121

122-
CREATE VIEW vw_blacklist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
122+
CREATE VIEW vw_denylist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
123123
FROM domainlist
124124
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
125125
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
126126
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
127127
AND domainlist.type = 1
128128
ORDER BY domainlist.id;
129129

130-
CREATE VIEW vw_regex_whitelist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
130+
CREATE VIEW vw_regex_allowlist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
131131
FROM domainlist
132132
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
133133
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id
134134
WHERE domainlist.enabled = 1 AND (domainlist_by_group.group_id IS NULL OR "group".enabled = 1)
135135
AND domainlist.type = 2
136136
ORDER BY domainlist.id;
137137

138-
CREATE VIEW vw_regex_blacklist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
138+
CREATE VIEW vw_regex_denylist AS SELECT domain, domainlist.id AS id, domainlist_by_group.group_id AS group_id
139139
FROM domainlist
140140
LEFT JOIN domainlist_by_group ON domainlist_by_group.domainlist_id = domainlist.id
141141
LEFT JOIN "group" ON "group".id = domainlist_by_group.group_id

gravity.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,7 @@ gravity_Table_Count() {
854854
fi
855855
}
856856

857-
# Output count of blacklisted domains and regex filters
857+
# Output count of denied and allowed domains and regex filters
858858
gravity_ShowCount() {
859859
# Here we use the table "gravity" instead of the view "vw_gravity" for speed.
860860
# It's safe to replace it here, because right after a gravity run both will show the exactly same number of domains.

manpages/pihole.8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ Allow-/denylist manipulation
268268

269269
\fBpihole --regex "ad.*\\.example\\.com$"\fR
270270
.br
271-
Adds "ad.*\\.example\\.com$" to the regex blacklist.
271+
Adds "ad.*\\.example\\.com$" to the regex denylist.
272272
Would block all subdomains of example.com which start with "ad"
273273
.br
274274

0 commit comments

Comments
 (0)