diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | deps.mk | 26 | ||||
-rw-r--r-- | src/cracha.go (renamed from src/gracha.go) | 20 | ||||
-rw-r--r-- | src/main.go | 4 | ||||
-rw-r--r-- | tests/benchmarks/register-login/cracha.go | 23 | ||||
-rw-r--r-- | tests/benchmarks/register-login/gracha.go | 9 | ||||
-rw-r--r-- | tests/cracha.go (renamed from tests/gracha.go) | 2 | ||||
-rw-r--r-- | tests/functional/register-twice/cracha.go | 12 | ||||
-rw-r--r-- | tests/functional/register-twice/gracha.go | 9 | ||||
-rw-r--r-- | tests/fuzz/api/cracha.go (renamed from tests/fuzz/api/gracha.go) | 2 | ||||
-rw-r--r-- | tests/main.go | 4 | ||||
-rw-r--r-- | tests/queries.sql | 92 |
12 files changed, 111 insertions, 94 deletions
@@ -1,7 +1,7 @@ .POSIX: DATE = 1970-01-01 VERSION = 0.1.0 -NAME = gracha +NAME = cracha NAME_UC = $(NAME) LANGUAGES = en ## Installation prefix. Defaults to "/usr". @@ -1,9 +1,9 @@ libs.go = \ - src/gracha.go \ - tests/benchmarks/register-login/gracha.go \ - tests/functional/register-twice/gracha.go \ - tests/fuzz/api/gracha.go \ - tests/gracha.go \ + src/cracha.go \ + tests/benchmarks/register-login/cracha.go \ + tests/cracha.go \ + tests/functional/register-twice/cracha.go \ + tests/fuzz/api/cracha.go \ mains.go = \ src/main.go \ @@ -13,32 +13,32 @@ mains.go = \ tests/main.go \ functional-tests/libs.go = \ - tests/functional/register-twice/gracha.go \ + tests/functional/register-twice/cracha.go \ functional-tests/main.go = \ tests/functional/register-twice/main.go \ fuzz-targets/lib.go = \ - tests/fuzz/api/gracha.go \ + tests/fuzz/api/cracha.go \ fuzz-targets/main.go = \ tests/fuzz/api/main.go \ benchmarks/lib.go = \ - tests/benchmarks/register-login/gracha.go \ + tests/benchmarks/register-login/cracha.go \ benchmarks/main.go = \ tests/benchmarks/register-login/main.go \ -src/gracha.a: src/gracha.go +src/cracha.a: src/cracha.go src/main.a: src/main.go -tests/benchmarks/register-login/gracha.a: tests/benchmarks/register-login/gracha.go +tests/benchmarks/register-login/cracha.a: tests/benchmarks/register-login/cracha.go tests/benchmarks/register-login/main.a: tests/benchmarks/register-login/main.go -tests/functional/register-twice/gracha.a: tests/functional/register-twice/gracha.go +tests/cracha.a: tests/cracha.go +tests/functional/register-twice/cracha.a: tests/functional/register-twice/cracha.go tests/functional/register-twice/main.a: tests/functional/register-twice/main.go -tests/fuzz/api/gracha.a: tests/fuzz/api/gracha.go +tests/fuzz/api/cracha.a: tests/fuzz/api/cracha.go tests/fuzz/api/main.a: tests/fuzz/api/main.go -tests/gracha.a: tests/gracha.go tests/main.a: tests/main.go src/main.bin: src/main.a tests/benchmarks/register-login/main.bin: tests/benchmarks/register-login/main.a diff --git a/src/gracha.go b/src/cracha.go index 471f7e7..5547d6e 100644 --- a/src/gracha.go +++ b/src/cracha.go @@ -1,4 +1,4 @@ -package gracha +package cracha import ( "context" @@ -22,7 +22,7 @@ import ( const ( - defaultPrefix = "gracha" + defaultPrefix = "cracha" rollbackErrorFmt = "rollback error: %w; while executing: %w" NEW_USER = "new-user" @@ -36,14 +36,14 @@ var ( SessionDuration = 7 * day RegisterTimeout = 15 * time.Second - ErrPassMismatch = errors.New("gracha: password confirmation mismatch") - ErrTooShort = errors.New("gracha: password too short") - ErrTimeout = errors.New("gracha: timeout when creating user") - ErrRegistered = errors.New("gracha: user already registered") - ErrBadCombo = errors.New("gracha: bad username/passphrase combo") - ErrUnconfirmed = errors.New("gracha: email is not confirmed") - ErrRevokedSession = errors.New("gracha: this session was revoked") - ErrSessionExpired = errors.New("gracha: session expired") + ErrPassMismatch = errors.New("cracha: password confirmation mismatch") + ErrTooShort = errors.New("cracha: password too short") + ErrTimeout = errors.New("cracha: timeout when creating user") + ErrRegistered = errors.New("cracha: user already registered") + ErrBadCombo = errors.New("cracha: bad username/passphrase combo") + ErrUnconfirmed = errors.New("cracha: email is not confirmed") + ErrRevokedSession = errors.New("cracha: this session was revoked") + ErrSessionExpired = errors.New("cracha: session expired") ) diff --git a/src/main.go b/src/main.go index 1e624ba..00df38d 100644 --- a/src/main.go +++ b/src/main.go @@ -1,7 +1,7 @@ package main -import "gracha" +import "cracha" func main() { - gracha.Main() + cracha.Main() } diff --git a/tests/benchmarks/register-login/cracha.go b/tests/benchmarks/register-login/cracha.go new file mode 100644 index 0000000..55f8166 --- /dev/null +++ b/tests/benchmarks/register-login/cracha.go @@ -0,0 +1,23 @@ +package cracha + +import ( + "flag" + "time" +) + + + +var nFlag = flag.Int( + "n", + 1_000, + "The number of iterations to execute", +) + +func MainTest() { + flag.Parse() + n := *nFlag + + for i := 0; i < n; i++ { + time.Sleep(time.Millisecond * 1) + } +} diff --git a/tests/benchmarks/register-login/gracha.go b/tests/benchmarks/register-login/gracha.go deleted file mode 100644 index f363b6b..0000000 --- a/tests/benchmarks/register-login/gracha.go +++ /dev/null @@ -1,9 +0,0 @@ -package gracha - -import ( -) - - - -func MainTest() { -} diff --git a/tests/gracha.go b/tests/cracha.go index 6991e56..905733c 100644 --- a/tests/gracha.go +++ b/tests/cracha.go @@ -1,4 +1,4 @@ -package gracha +package cracha import ( "database/sql" diff --git a/tests/functional/register-twice/cracha.go b/tests/functional/register-twice/cracha.go new file mode 100644 index 0000000..0885c9d --- /dev/null +++ b/tests/functional/register-twice/cracha.go @@ -0,0 +1,12 @@ +package cracha + +import ( + g "gobang" +) + + + +func MainTest() { + g.Testing("with adjusted emails, one can register twice", func() { + }) +} diff --git a/tests/functional/register-twice/gracha.go b/tests/functional/register-twice/gracha.go deleted file mode 100644 index f363b6b..0000000 --- a/tests/functional/register-twice/gracha.go +++ /dev/null @@ -1,9 +0,0 @@ -package gracha - -import ( -) - - - -func MainTest() { -} diff --git a/tests/fuzz/api/gracha.go b/tests/fuzz/api/cracha.go index 6f2981a..8775cd3 100644 --- a/tests/fuzz/api/gracha.go +++ b/tests/fuzz/api/cracha.go @@ -1,4 +1,4 @@ -package gracha +package cracha import ( "os" diff --git a/tests/main.go b/tests/main.go index e22c061..4982a6d 100644 --- a/tests/main.go +++ b/tests/main.go @@ -1,7 +1,7 @@ package main -import "gracha" +import "cracha" func main() { - gracha.MainTest() + cracha.MainTest() } diff --git a/tests/queries.sql b/tests/queries.sql index 7e20ae9..6e68db1 100644 --- a/tests/queries.sql +++ b/tests/queries.sql @@ -1,7 +1,7 @@ -- createTables.sql: -- write: - CREATE TABLE IF NOT EXISTS "gracha_users" ( + CREATE TABLE IF NOT EXISTS "cracha_users" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), uuid BLOB NOT NULL UNIQUE, @@ -9,65 +9,65 @@ salt BLOB NOT NULL UNIQUE, pwhash BLOB NOT NULL ); - CREATE TABLE IF NOT EXISTS "gracha_confirmation_attempts" ( + CREATE TABLE IF NOT EXISTS "cracha_confirmation_attempts" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), -- uuid BLOB NOT NULL UNIQUE, - user_id INTEGER NOT NULL REFERENCES "gracha_users"(id), + user_id INTEGER NOT NULL REFERENCES "cracha_users"(id), token TEXT NOT NULL UNIQUE ); - CREATE TABLE IF NOT EXISTS "gracha_user_confirmations" ( + CREATE TABLE IF NOT EXISTS "cracha_user_confirmations" ( id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), user_id INTEGER NOT NULL - REFERENCES "gracha_users"(id) UNIQUE, + REFERENCES "cracha_users"(id) UNIQUE, attempt_id INTEGER NOT NULL - REFERENCES "gracha_confirmation_attempts"(id) UNIQUE + REFERENCES "cracha_confirmation_attempts"(id) UNIQUE ); - CREATE TABLE IF NOT EXISTS "gracha_user_changes" ( + CREATE TABLE IF NOT EXISTS "cracha_user_changes" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), - user_id INTEGER NOT NULL REFERENCES "gracha_users"(id), + user_id INTEGER NOT NULL REFERENCES "cracha_users"(id), attribute TEXT NOT NULL, value TEXT NOT NULL, op BOOLEAN NOT NULL ); - -- CREATE TABLE IF NOT EXISTS "gracha_tokens" ( + -- CREATE TABLE IF NOT EXISTS "cracha_tokens" ( -- id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, -- timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), -- uuid BLOB NOT NULL UNIQUE, -- type TEXT NOT NULL -- ); - CREATE TABLE IF NOT EXISTS "gracha_roles" ( + CREATE TABLE IF NOT EXISTS "cracha_roles" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - user_id INTEGER NOT NULL REFERENCES "gracha_users"(id), + user_id INTEGER NOT NULL REFERENCES "cracha_users"(id), role TEXT NOT NULL, UNIQUE (user_id, role) ); - CREATE TABLE IF NOT EXISTS "gracha_role_changes" ( + CREATE TABLE IF NOT EXISTS "cracha_role_changes" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), - user_id INTEGER NOT NULL REFERENCES "gracha_roles"(id), + user_id INTEGER NOT NULL REFERENCES "cracha_roles"(id), role TEXT NOT NULL, op BOOLEAN NOT NULL ); - CREATE TABLE IF NOT EXISTS "gracha_sessions" ( + CREATE TABLE IF NOT EXISTS "cracha_sessions" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), uuid BLOB NOT NULL UNIQUE, - user_id INTEGER NOT NULL REFERENCES "gracha_users"(id) + user_id INTEGER NOT NULL REFERENCES "cracha_users"(id) -- type TEXT NOT NULL, -- revoked_at TEXT, - -- revoker_id INTEGER REFERENCES "gracha_users"(id), + -- revoker_id INTEGER REFERENCES "cracha_users"(id), -- FIXME: add provenance: login, refresh, confirmation, etc. ); - CREATE TABLE IF NOT EXISTS "gracha_attempts" ( + CREATE TABLE IF NOT EXISTS "cracha_attempts" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), - user_id INTEGER REFERENCES "gracha_users"(id), - session_id INTEGER REFERENCES "gracha_sessions"(id) + user_id INTEGER REFERENCES "cracha_users"(id), + session_id INTEGER REFERENCES "cracha_sessions"(id) ); - CREATE TABLE IF NOT EXISTS "gracha_audit" ( + CREATE TABLE IF NOT EXISTS "cracha_audit" ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')), uuid BLOB NOT NULL UNIQUE, @@ -85,34 +85,34 @@ -- read: SELECT id, timestamp, uuid, salt, pwhash, ( CASE WHEN EXISTS ( - SELECT id FROM "gracha_user_confirmations" + SELECT id FROM "cracha_user_confirmations" WHERE user_id = ( - SELECT id FROM "gracha_users" + SELECT id FROM "cracha_users" WHERE email = ? ) ) THEN 1 ELSE 0 END ) as confirmed - FROM "gracha_users" WHERE email = ?; + FROM "cracha_users" WHERE email = ?; -- register.sql: -- write: - INSERT INTO "gracha_users" (uuid, email, salt, pwhash) + INSERT INTO "cracha_users" (uuid, email, salt, pwhash) VALUES (?, ?, ?, ?) RETURNING id, timestamp; -- read: - SELECT id, timestamp from "gracha_users" + SELECT id, timestamp from "cracha_users" WHERE uuid = ?; -- sendToken.sql: -- write: - INSERT INTO "gracha_confirmation_attempts" (user_id, token) + INSERT INTO "cracha_confirmation_attempts" (user_id, token) VALUES ( - (SELECT id FROM "gracha_users" WHERE uuid = ?), + (SELECT id FROM "cracha_users" WHERE uuid = ?), ? ) @@ -121,18 +121,18 @@ -- confirm.sql: -- write: - INSERT INTO "gracha_user_confirmations" (user_id, attempt_id) + INSERT INTO "cracha_user_confirmations" (user_id, attempt_id) VALUES (?, ?); -- read: SELECT - "gracha_confirmation_attempts".id, - "gracha_confirmation_attempts".user_id, - "gracha_users".uuid - FROM "gracha_confirmation_attempts" - JOIN "gracha_users" ON - "gracha_confirmation_attempts".user_id = "gracha_users".id + "cracha_confirmation_attempts".id, + "cracha_confirmation_attempts".user_id, + "cracha_users".uuid + FROM "cracha_confirmation_attempts" + JOIN "cracha_users" ON + "cracha_confirmation_attempts".user_id = "cracha_users".id WHERE token = ?; @@ -143,15 +143,15 @@ -- refresh.sql: -- write: - INSERT INTO "gracha_sessions" (uuid, user_id) + INSERT INTO "cracha_sessions" (uuid, user_id) VALUES ( ?, - (SELECT user_id FROM "gracha_sessions" WHERE uuid = ?) + (SELECT user_id FROM "cracha_sessions" WHERE uuid = ?) ) RETURNING id, timestamp, ( - SELECT "gracha_users".uuid FROM "gracha_users" - JOIN "gracha_sessions" ON - "gracha_users".id = "gracha_sessions".user_id - WHERE "gracha_sessions".uuid = ? + SELECT "cracha_users".uuid FROM "cracha_users" + JOIN "cracha_sessions" ON + "cracha_users".id = "cracha_sessions".user_id + WHERE "cracha_sessions".uuid = ? ) AS userID; @@ -159,14 +159,14 @@ -- reset.sql: -- write: - -- INSERT SOMETHING gracha + -- INSERT SOMETHING cracha -- read: -- change.sql: -- write: - -- INSERT SOMETHING gracha + -- INSERT SOMETHING cracha -- read: @@ -175,26 +175,26 @@ -- write: -- read: - -- INSERT SOMETHING gracha + -- INSERT SOMETHING cracha -- logout.sql: -- write: - -- INSERT SOMETHING gracha + -- INSERT SOMETHING cracha -- read: -- outOthers.sql: -- write: - -- INSERT SOMETHING gracha + -- INSERT SOMETHING cracha -- read: -- outAll.sql: -- write: - -- INSERT SOMETHING gracha + -- INSERT SOMETHING cracha -- read: |