From e297b98f721bf32d8d4331677eefe49823db32b9 Mon Sep 17 00:00:00 2001
From: Ellie Huxtable <ellie@elliehuxtable.com>
Date: Fri, 4 Nov 2022 09:08:20 +0000
Subject: Add local event log storage (#390)

* Add event data structures

This adds the data structures required to start syncing events, rather
than syncing history directly.

Adjust event

Fix

Add event data structure to client

* Add server event table sql

* Add client event table migration

Adjust migration

* Insert into event table from client

* Add event merge function

Right now this just ensures we have the right amount of events given the
history we have

BUT it will also be used to merge CREATE/DELETE events, resulting in
history being deleted :)

* Make CI happy

* Adjust

* we don't limit history length any more

* Update atuin-client/src/database.rs

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>

* fix usage

* Fix typo

* New Rust, new clippy stuff

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
---
 atuin-server/migrations/20220505082442_create-events.sql | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
 create mode 100644 atuin-server/migrations/20220505082442_create-events.sql

(limited to 'atuin-server/migrations/20220505082442_create-events.sql')

diff --git a/atuin-server/migrations/20220505082442_create-events.sql b/atuin-server/migrations/20220505082442_create-events.sql
new file mode 100644
index 00000000..57e16ec7
--- /dev/null
+++ b/atuin-server/migrations/20220505082442_create-events.sql
@@ -0,0 +1,14 @@
+create type event_type as enum ('create', 'delete');
+ 
+create table events (
+	id bigserial primary key,
+	client_id text not null unique, -- the client-generated ID
+	user_id bigserial not null,     -- allow multiple users
+	hostname text not null,         -- a unique identifier from the client (can be hashed, random, whatever)
+	timestamp timestamp not null,   -- one of the few non-encrypted metadatas
+
+	event_type event_type,
+	data text not null,    -- store the actual history data, encrypted. I don't wanna know!
+
+	created_at timestamp not null default current_timestamp
+);
-- 
cgit v1.3.1

