Brijesh's Git Server — watchman @ main

observability tool, needs to be rewritten once identity is stable

6273791a
docs: add installation instructions for server

Still need to add instructions for frontend, and show a simple usage example of client library.
Brijesh ops@brijesh.dev
Sat, 13 Jul 2024 03:42:39 +0530
bcb6b981
chore: change handlers to work as methods and seperate db and app logic

Seperated DB and app logic, this should help in writing tests later.

Also edited code to use Methods, might change this back to plain functions as this might be unneccessary.
Brijesh ops@brijesh.dev
Thu, 11 Jul 2024 19:21:37 +0530
070e9230
chore: rename variables to follow same pattern and remove unused code
Brijesh ops@brijesh.dev
Tue, 09 Jul 2024 18:30:30 +0530
2d4643bb
feat(admin auth): create auth API for use with frontend

created auth hardcoded values in config.yaml and API endpoints to verify credentials and return JWT token and also a middleware to verify token.
(not tested with frontend might need more changes)
Brijesh ops@brijesh.dev
Tue, 09 Jul 2024 18:06:15 +0530
fa969251
feat(rate limiting): make rate limiting req/sec configurable

add rate limiting variable in config.yaml file to make it easier to edit if needed
Brijesh ops@brijesh.dev
Tue, 09 Jul 2024 17:45:20 +0530
f57775c9
docs(README): update readme and move API docs to a seperate file

API documentation in README felt unneccessary, so moved it to a seperate file and update phrasing of sentences in README
Brijesh ops@brijesh.dev
Tue, 09 Jul 2024 17:41:37 +0530
d8af78ff
refactor(errors & responses): remove repetitive code and make all responses in json

Made all responses be in JSON, this won't make much difference now but it will be easier to write frontend logic later.

Also probably reduced total lines of code.
Brijesh ops@brijesh.dev
Mon, 08 Jul 2024 16:20:55 +0530
2960f2fd
chore(errors): create helper function for method not allowed

Instead of writing same code multiple times for making method not allowed responses be in json, moved the logic to a helper function.
Brijesh ops@brijesh.dev
Thu, 04 Jul 2024 22:13:56 +0530
7f51bf3a
chore(readme): move readme from markdown to asciidoc format

The final rendered output looks same as markdown (no particular reason for converting)
Brijesh ops@brijesh.dev
Thu, 04 Jul 2024 13:20:06 +0530
725dc272
infra(frontend): move frontend to seperate repository and add it as submodule

If this initial code isn't going to be rewritten from scratch, it has to be clean enough to maintain, so moved the frontend to a seperate repository.

Added it as a submodule for easier installation.
Brijesh ops@brijesh.dev
Thu, 04 Jul 2024 07:28:30 +0530
4e2b931a
fix(logs): update API endpoints to follow REST standard

Now that the batch insert and other operations work, I organised the endpoints to follow REST standard, also removed some unnecessary handlers for logs.
Brijesh ops@brijesh.dev
Thu, 04 Jul 2024 07:11:08 +0530
c4703486
fix(projects): update API endpoints to follow REST standard

Having messy API in initial versions is okay as I'll probably rewrite the whole thing from scratch anyways, but I fixed it for now.

This would've been easier I hadn't decided to stick with standard library for http server, Might switch to echo in coming versions if using vanilla net/http becomes too much of a hassle
Brijesh ops@brijesh.dev
Wed, 03 Jul 2024 19:49:18 +0530
242871c6
feat(chart): use tremor chart for showing log frequency

Tried using D3 and while I might have been able to make charts exactly the way it would have taken too much time, so chose to go with a simple looking charts library
Brijesh ops@brijesh.dev
Wed, 03 Jul 2024 19:38:37 +0530
06015f9e
chore: move config to yaml file, add favicon and titles to client pages

env file ended up not having any enviroment variables and only config stuff so moved to a YAML file for config and deleted .env

also created a temporary favicon and added titles to pages

will move rate limiting requests/sec count to config file as well in coming updates
Brijesh ops@brijesh.dev
Fri, 28 Jun 2024 15:37:54 +0530
620f0d09
feat(client): create client and basic UI for managing projects

Created a web dashboard for watchman using Next.js, I could have used go html templates but using Next.js I can finish building frontend faster

Might build a client using server side go templates if this works well enough

Also created pages for managing projects
Brijesh ops@brijesh.dev
Fri, 28 Jun 2024 02:32:38 +0530
d476f7c9
fix(projects): fix minor changes in projects APIs

Needs further updating but changed API enough to get frontend working
Brijesh ops@brijesh.dev
Fri, 28 Jun 2024 02:28:33 +0530
9d309b45
feat: projects and logs handlers but no embedded replicas

added all planned handlers for projects and logs and few extra ones as well

could not figure out how to solve SIGSEGV error with turso's embedded replicas

could use a minio server and systemd timers for db backups
Brijesh ops@brijesh.dev
Thu, 27 Jun 2024 02:00:13 +0530
cd48349f
infra(batman): create basic structure and middleware

created a basic file structure, its not ideal but good enough for now

also copied code for rate limiting middleware, might have to change it if I decide to use a reverse proxy

and a simple request ID middleware
Brijesh ops@brijesh.dev
Tue, 25 Jun 2024 14:48:53 +0530