aboutsummaryrefslogtreecommitdiffstats
path: root/docs/sql/sqloper
diff options
context:
space:
mode:
authorGravatar Sadie Powell2024-07-01 12:57:04 +0100
committerGravatar Sadie Powell2024-07-01 13:14:04 +0100
commit4718cec54aad3e95fed207d81e099df685553cb8 (patch)
treee48cfb4deb9fbbbeb807dc1423361e5cce3fa9ee /docs/sql/sqloper
parentFix the log_sql module schema allowing null columns. (diff)
downloadinspircd++-4718cec54aad3e95fed207d81e099df685553cb8.tar.gz
inspircd++-4718cec54aad3e95fed207d81e099df685553cb8.tar.bz2
inspircd++-4718cec54aad3e95fed207d81e099df685553cb8.zip
Add a DBML schema for the sqloper module and update the tables.
Diffstat (limited to 'docs/sql/sqloper')
-rw-r--r--docs/sql/sqloper/mysql.sql43
-rw-r--r--docs/sql/sqloper/pgsql.sql48
-rw-r--r--docs/sql/sqloper/schema.dbml43
-rw-r--r--docs/sql/sqloper/sqlite3.sql41
4 files changed, 141 insertions, 34 deletions
diff --git a/docs/sql/sqloper/mysql.sql b/docs/sql/sqloper/mysql.sql
index 83dfa68a6..7c7d20d1d 100644
--- a/docs/sql/sqloper/mysql.sql
+++ b/docs/sql/sqloper/mysql.sql
@@ -1,12 +1,31 @@
-CREATE TABLE ircd_opers (
- id bigint(20) NOT NULL auto_increment,
- name text NOT NULL,
- password text NOT NULL,
- hash text,
- host text NOT NULL,
- type text NOT NULL,
- fingerprint text,
- autologin tinyint(1) NOT NULL DEFAULT 0,
- active tinyint(1) NOT NULL DEFAULT 1,
- PRIMARY KEY (id)
-) ENGINE=InnoDB;
+CREATE TABLE IF NOT EXISTS `ircd_opers` (
+ `active` bool NOT NULL DEFAULT true,
+ `name` text NOT NULL,
+ `password` text NOT NULL,
+ `host` text NOT NULL,
+ `type` text NOT NULL,
+
+ `autologin` ENUM ('strict', 'relaxed', 'never'),
+ `class` text,
+ `hash` text,
+ `maxchans` bigint,
+ `nopassword` bool,
+ `vhost` text,
+
+ `commands` text,
+ `privs` text,
+ `chanmodes` text,
+ `usermodes` text,
+ `snomasks` text,
+
+ `account` text,
+ `autojoin` text,
+ `automotd` bool,
+ `fingerprint` text,
+ `level` bigint,
+ `modes` text,
+ `motd` bool,
+ `override` text,
+ `sslonly` bool,
+ `swhois` text
+);
diff --git a/docs/sql/sqloper/pgsql.sql b/docs/sql/sqloper/pgsql.sql
index 954bc84fa..a572fe4a8 100644
--- a/docs/sql/sqloper/pgsql.sql
+++ b/docs/sql/sqloper/pgsql.sql
@@ -1,13 +1,37 @@
-CREATE TABLE ircd_opers (
- "id" serial NOT NULL,
- "name" text NOT NULL,
- "password" text NOT NULL,
- "hash" text,
- "host" text NOT NULL,
- "type" text NOT NULL,
- "fingerprint" text,
- "autologin" smallint NOT NULL DEFAULT 0,
- "active" smallint NOT NULL DEFAULT 1
+CREATE TYPE "autologin" AS ENUM (
+ 'strict',
+ 'relaxed',
+ 'never'
+);
+
+CREATE TABLE "ircd_opers" (
+ "active" bool NOT NULL DEFAULT true,
+ "name" text NOT NULL,
+ "password" text NOT NULL,
+ "host" text NOT NULL,
+ "type" text NOT NULL,
+
+ "autologin" autologin,
+ "class" text,
+ "hash" text,
+ "maxchans" bigint,
+ "nopassword" bool,
+ "vhost" text,
+
+ "commands" text,
+ "privs" text,
+ "chanmodes" text,
+ "usermodes" text,
+ "snomasks" text,
+
+ "account" text,
+ "autojoin" text,
+ "automotd" bool,
+ "fingerprint" text,
+ "level" bigint,
+ "modes" text,
+ "motd" bool,
+ "override" text,
+ "sslonly" bool,
+ "swhois" text
);
-ALTER TABLE ONLY ircd_opers
- ADD CONSTRAINT ircd_opers_pkey PRIMARY KEY (id);
diff --git a/docs/sql/sqloper/schema.dbml b/docs/sql/sqloper/schema.dbml
new file mode 100644
index 000000000..e39c38e72
--- /dev/null
+++ b/docs/sql/sqloper/schema.dbml
@@ -0,0 +1,43 @@
+Enum autologin {
+ strict
+ relaxed
+ never
+}
+
+Table ircd_opers {
+ // internal to sqloper
+ active bool [default: true, not null]
+
+ // core oper config (required)
+ name text [not null]
+ password text [not null]
+ host text [not null]
+ type text [not null]
+
+ // core oper config (optional)
+ autologin autologin [null]
+ class text [null]
+ hash text [null]
+ maxchans bigint [null]
+ nopassword bool [null]
+ vhost text [null]
+
+ // core type config
+ commands text [null]
+ privs text [null]
+ chanmodes text [null]
+ usermodes text [null]
+ snomasks text [null]
+
+ // module config
+ account text [null] // account
+ autojoin text [null] // operjoin
+ automotd bool [null] // opermotd
+ fingerprint text [null] // sslinfo
+ level bigint [null] // operlevels
+ modes text [null] // opermodes
+ motd bool [null] // opermotd
+ override text [null] // override
+ sslonly bool [null] // sslinfo
+ swhois text [null] // swhois
+}
diff --git a/docs/sql/sqloper/sqlite3.sql b/docs/sql/sqloper/sqlite3.sql
index 6aec5a118..0e54c1351 100644
--- a/docs/sql/sqloper/sqlite3.sql
+++ b/docs/sql/sqloper/sqlite3.sql
@@ -1,10 +1,31 @@
-CREATE TABLE ircd_opers (
-id integer primary key,
-name text NOT NULL,
-password text NOT NULL,
-hash text,
-host text NOT NULL,
-type text NOT NULL,
-fingerprint text,
-autologin integer NOT NULL DEFAULT 0,
-active integer NOT NULL DEFAULT 1);
+CREATE TABLE IF NOT EXISTS "ircd_opers" (
+ "active" bool NOT NULL DEFAULT true,
+ "name" text NOT NULL,
+ "password" text NOT NULL,
+ "host" text NOT NULL,
+ "type" text NOT NULL,
+
+ "autologin" CHECK ("autologin" IN ('strict', 'relaxed', 'never')),
+ "class" text,
+ "hash" text,
+ "maxchans" bigint,
+ "nopassword" bool,
+ "vhost" text,
+
+ "commands" text,
+ "privs" text,
+ "chanmodes" text,
+ "usermodes" text,
+ "snomasks" text,
+
+ "account" text,
+ "autojoin" text,
+ "automotd" bool,
+ "fingerprint" text,
+ "level" bigint,
+ "modes" text,
+ "motd" bool,
+ "override" text,
+ "sslonly" bool,
+ "swhois" text
+);