Commit graph

99 commits

Author SHA1 Message Date
0b331ec6c6
Lowercase & upperase initialism acronyms
See https://google.github.io/styleguide/go/decisions#initialisms
2024-05-30 12:46:33 +07:00
38320bc316
Rename NewProberRepo to NewProber
Also rename ProbersQueryParams to QueryProbers
2024-05-27 07:17:27 +07:00
ab82985bdf
Rename MoneroLogQueryParams to QueryLogs
The reason is same with commits reference 99a367f04b
2024-05-27 06:38:11 +07:00
6b5225758e
Rename NewMoneroRepo to just New
Just run `monero.New()` to initialize MoneroRepository.

The database connection is now called from the `New()` function
2024-05-27 06:15:40 +07:00
99a367f04b
chore: Renamed MoneroQueryParams
The `MoneroQueryParams` renamed to `QueryNodes`.
It become much more readable when calling it.

Also added some comment in some functions.
2024-05-27 05:13:03 +07:00
c25e9224b6
lint: No err check 2024-05-24 05:37:27 +07:00
2270fe4deb
Secret key environment variable no longer needed 2024-05-23 03:57:29 +07:00
253230dc5a
Removing admin module and functions
The administration of the server is done using cli tools. So I don't
think that admin account and module is required. At least for now.

Note that this also remove `tbl_admin` creation in database migrate.
Since no release were made until this commit, the database migration
still in version 1. Manual removal database table for `tbl_admin`
is required on the existing running server.
2024-05-23 03:40:06 +07:00
40b9a6e1d6
Make sure cron goroutine is stopped
Adding struct chan to run cron Process to stop the goroutine.

Moving db migration inside `fiber.IsChild` block
to avoid multiple execution migration script when in prefork mode.

Give additional time for graceful shutdown.
2024-05-23 02:58:58 +07:00
8c1f6b0c43
Make cron as it's own package 2024-05-23 02:24:06 +07:00
ddc448e90c
Moving monero.go to its own internal package 2024-05-22 22:45:38 +07:00
7d69e9af95
chore: Make SQL queries in more readable 2024-05-20 04:22:58 +07:00
fae32d9a74
chore: Make SQL queries in more readable 2024-05-20 03:08:48 +07:00
30b37b922f
Ability to list cron from CLI #2
Since `tbl_cron` will contain a few rows (for now just 1),
cron list function call is not using any arguments.

This commit also remove cron http handler and endpoint.
2024-05-18 20:13:00 +07:00
120ba51c87
Ability to edit prober name by ID from CLI #2 2024-05-18 19:50:20 +07:00
b5e2787420
Ability to delete prober by ID from CLI #2 2024-05-18 19:39:27 +07:00
d2f927e3db
Ability to add prober from CLI #2 2024-05-18 19:03:56 +07:00
59f1dd9421
List Probers CLI command #2
Listing probers is now only available from server CLI.

The `ProbersQueryParams` struct also changed. I don't think that I will
use more than 20 probers in this project, so paging is not required.

The search param also simplified in one field struct `Search" which
search both in `name` and `api_key` column.
2024-05-18 00:56:13 +07:00
46bc3dc2e8
Using slog for logging level
The log level for the apps is using `log/slog` from Go standard library.
This commit change log format for fiber http logger to match with
the slog standard log format (date and time).

This commit also remove `APP_DEBUG` field from config struct.

TODO:
Use `slog` for default app output. Note that in this commit, the `slog`
output only implemented in `cron` "db migrate" and probe client.
2024-05-13 18:40:01 +07:00
d3113bf598
feat: MySQL db migration
Create database schema migration for this app that run when the `serve`
command is executed.
2024-05-12 04:19:40 +07:00
efca11e51c
Make nettype and protocol query more strict
It will return error if nettype and protocol query string value is wrong
2024-05-09 20:44:49 +07:00
ec11fa0126
removing current page & next page in api response
This response was used for my HTMX "infinite scroll" data, which is not
used in this Svelte project.
2024-05-09 18:29:48 +07:00
5496692c5d
Avoid naming module using a domain name pattern
I hope it will be less discoverable by other users and less likely to
be used unintentionally in other projects.
2024-05-08 21:35:04 +07:00
edb27100bb
chore: Indention query 2024-05-08 19:29:26 +07:00
738c0826c8
Delete old probe logs older than 1 month +2 days 2024-05-08 19:28:42 +07:00
f931066c8c
Keep nettype, height, etc same as before
Do not replace existing database record if prober can't reach the remote
nodes. Only update node status and last fetch record.
2024-05-08 19:03:41 +07:00
8821ad7995
Make cron datatable filterable 2024-05-08 17:24:34 +07:00
50588da322
Edit prober name action 2024-05-07 23:23:31 +07:00
09490a8250
Adding prober delete action 2024-05-07 22:37:36 +07:00
32ef14d1d5
Update prober last activity timestamp
This executed after prober submit fetch report
2024-05-07 22:01:21 +07:00
2a4721b8de
Add filter log by failed reason and status 2024-05-07 21:31:40 +07:00
d04473a807
Add details node by ID endpoint 2024-05-07 01:08:01 +07:00
9aad56103a
Delete old probe logs task 2024-05-06 18:40:09 +07:00
34e4d8c98d
Delete monero node uptime <= 0% with > 300 records 2024-05-06 17:45:18 +07:00
8f5f972faf
Simple display probe logs 2024-05-06 17:19:17 +07:00
33aae21237
Filter datatable (backend)
Adding filter by country, protocol, status, cors and nettype
2024-05-06 14:33:13 +07:00
59b368d91e
Add monero country list endpoint (backend) 2024-05-06 13:35:15 +07:00
1ceb00543b
Adding majority net fee
Note that because this app not caching "expensive" query from database,
I use static majority data for frontend to reduce API call.
2024-05-06 13:19:48 +07:00
92472c2616
Fix country name and country code json response 2024-05-05 02:27:20 +07:00
553aca1074
Adding GeoIP support 2024-05-05 02:20:54 +07:00
1baddfd2d1
Process submitted job from prober 2024-05-05 01:42:47 +07:00
e9577b9bcf
Follow the monero RPC response
This commit change database name and MoneroNode struct:

- `NodeVersion` to `Version`
- `LastHeight` to `Height`

This commit also add `Status` to the MoneroNode struct.
2024-05-04 22:53:03 +07:00
8724b81431
Probe (client) check remote node
Please note that this commit is not complete. I commit to the repo
because I have something to do with my another project. Just don't
want to lost my work for the last couple hours.
2024-05-04 22:36:57 +07:00
cee2b4341b
Add prober API key check middleware 2024-05-04 19:52:22 +07:00
6430e37548
Give job api response 2024-05-04 19:27:21 +07:00
ca759fc1d0
Monero remote node UI for frontend
This commit also implement the simple remote node queries.

TODO: Add filter for various data
2024-05-04 18:52:47 +07:00
7cd802e640
Basic add node action implemented 2024-05-04 17:24:47 +07:00
949db1573b
Add sort order for prober data table
Allowed sort order by `id` and `last_submit_ts`
2024-05-04 01:11:21 +07:00
ced266159e
Copying my other project structure to this project 2024-05-04 00:11:56 +07:00