8b5bdc7523
toSQL function for QueryProber struct
...
Make the unit test easier
2024-05-30 20:14:16 +07:00
acc70111c8
fix: slog args message become slog.Attr
2024-05-30 19:41:03 +07:00
a11986ac0c
Separating QueryNode to it's own sql builder func
...
A quick note that is's ok to use "*" all columns on nodes query
since all columns really want to be displayed to the frontend.
2024-05-30 19:19:03 +07:00
4800bb3284
Adding test and bench example
2024-05-30 15:47:27 +07:00
130cd06dc4
Make X-Prober-Api-Key as constant
2024-05-30 13:40:57 +07:00
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