2022-11-19 17:09:23 +01:00
|
|
|
|
|
|
|
|
2022-11-30 10:35:05 +01:00
|
|
|
TODO
|
|
|
|
========
|
2022-11-19 17:09:23 +01:00
|
|
|
|
2023-01-13 17:17:17 +01:00
|
|
|
|
2023-07-04 11:31:47 +02:00
|
|
|
#### DO DO DO
|
2023-01-13 17:17:17 +01:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- app-store link in HTML
|
2022-11-25 22:42:21 +01:00
|
|
|
|
2023-01-18 21:56:37 +01:00
|
|
|
- ios purchase verification
|
|
|
|
|
2023-07-30 15:58:37 +02:00
|
|
|
- use goext.ginWrapper
|
|
|
|
|
|
|
|
- use goext.exerr
|
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
#### UNSURE
|
2023-04-21 21:45:16 +02:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- (?) default-priority for channels
|
2023-04-21 21:45:16 +02:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- (?) "login" on website and list/search/filter messages
|
2023-05-28 03:38:33 +02:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- (?) make channels deleteable (soft-delete) (what do with messages in channel?)
|
2023-06-06 18:52:03 +02:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- (?) desktop client for notifications
|
2022-11-30 10:35:05 +01:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- (?) add querylog (similar to requestlog/errorlog) - only for main-db
|
2022-11-29 11:07:15 +01:00
|
|
|
|
2023-06-18 14:28:58 +02:00
|
|
|
- (?) specify 'type' of message (debug, info, warn, error, fatal) -> distinct from priority
|
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
#### LATER
|
2023-05-27 20:02:16 +02:00
|
|
|
|
2023-05-28 22:27:38 +02:00
|
|
|
- do i need bool2db()? it seems to work for keytokens without them?
|
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- We no longer have a route to reshuffle all keys (previously in updateUser), add a /user/:uid/keys/reset ?
|
|
|
|
Would delete all existing keys and create 3 new ones?
|
2022-11-30 10:35:05 +01:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- error logging as goroutine, gets all errors via channel,
|
|
|
|
(channel buffered - nonblocking send, second channel that gets a message when sender failed )
|
|
|
|
(then all errors end up in _second_ sqlite table)
|
|
|
|
due to message channel etc everything is non blocking and cant fail in main
|
|
|
|
|
|
|
|
- => implement proper error logging in goext, kinda combines zerolog and wrapped-errors
|
|
|
|
copy basic code from bringman, but remove all bm specific stuff and make it abstract
|
|
|
|
Register(ErrType) methods, errtypes then as structs
|
|
|
|
log.xxx package with same interface as zerolog
|
2022-11-30 10:35:05 +01:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- jobs to clear error-db to only keep X entries... (requests-db already exists)
|
2023-01-13 12:43:20 +01:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- route to re-check all pro-token (for me)
|
2023-01-13 12:43:20 +01:00
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- /send endpoint should be compatible with the [ webhook ] notifier of uptime-kuma
|
|
|
|
(or add another /kuma endpoint)
|
|
|
|
-> https://webhook.site/
|
2023-01-14 00:48:51 +01:00
|
|
|
|
2023-08-12 11:14:20 +02:00
|
|
|
|
|
|
|
````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{"heartbeat":{"monitorID":89,"status":0,"time":"2023-07-31 18:56:15.374","msg":"timeout of 16000ms exceeded","important":true,"duration":36,"timezone":"Europe/Berlin","timezoneOffset":"+02:00","localDateTime":"2023-07-31 20:56:15"},"monitor":{"id":89,"name":"test","description":null,"pathName":"test","parent":null,"childrenIDs":[],"url":"https://exampleXYZ.com","method":"GET","hostname":null,"port":null,"maxretries":1,"weight":2000,"active":true,"forceInactive":false,"type":"http","interval":20,"retryInterval":20,"resendInterval":0,"keyword":null,"expiryNotification":false,"ignoreTls":false,"upsideDown":false,"packetSize":56,"maxredirects":10,"accepted_statuscodes":["200-299"],"dns_resolve_type":"A","dns_resolve_server":"1.1.1.1","dns_last_result":null,"docker_container":"","docker_host":null,"proxyId":null,"notificationIDList":{"2":true},"tags":[],"maintenance":false,"mqttTopic":"","mqttSuccessMessage":"","databaseQuery":null,"authMethod":null,"grpcUrl":null,"grpcProtobuf":null,"grpcMethod":null,"grpcServiceName":null,"grpcEnableTls":false,"radiusCalledStationId":null,"radiusCallingStationId":null,"game":null,"httpBodyEncoding":"json","includeSensitiveData":false},"msg":"[test] [🔴 Down] timeout of 16000ms exceeded"}
|
|
|
|
|
|
|
|
|
|
|
|
=====================================================================================================================================================================================================
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
"heartbeat": {
|
|
|
|
"monitorID": 89,
|
|
|
|
"status": 1,
|
|
|
|
"time": "2023-07-31 18:56:57.151",
|
|
|
|
"msg": "200 - OK",
|
|
|
|
"ping": 55,
|
|
|
|
"important": true,
|
|
|
|
"duration": 41,
|
|
|
|
"timezone": "Europe/Berlin",
|
|
|
|
"timezoneOffset": "+02:00",
|
|
|
|
"localDateTime": "2023-07-31 20:56:57"
|
|
|
|
},
|
|
|
|
"monitor": {
|
|
|
|
"id": 89,
|
|
|
|
"name": "test",
|
|
|
|
"description": null,
|
|
|
|
"pathName": "test",
|
|
|
|
"parent": null,
|
|
|
|
"childrenIDs": [],
|
|
|
|
"url": "https://example.com",
|
|
|
|
"method": "GET",
|
|
|
|
"hostname": null,
|
|
|
|
"port": null,
|
|
|
|
"maxretries": 1,
|
|
|
|
"weight": 2000,
|
|
|
|
"active": true,
|
|
|
|
"forceInactive": false,
|
|
|
|
"type": "http",
|
|
|
|
"interval": 20,
|
|
|
|
"retryInterval": 20,
|
|
|
|
"resendInterval": 0,
|
|
|
|
"keyword": null,
|
|
|
|
"expiryNotification": false,
|
|
|
|
"ignoreTls": false,
|
|
|
|
"upsideDown": false,
|
|
|
|
"packetSize": 56,
|
|
|
|
"maxredirects": 10,
|
|
|
|
"accepted_statuscodes": [
|
|
|
|
"200-299"
|
|
|
|
],
|
|
|
|
"dns_resolve_type": "A",
|
|
|
|
"dns_resolve_server": "1.1.1.1",
|
|
|
|
"dns_last_result": null,
|
|
|
|
"docker_container": "",
|
|
|
|
"docker_host": null,
|
|
|
|
"proxyId": null,
|
|
|
|
"notificationIDList": {
|
|
|
|
"2": true
|
|
|
|
},
|
|
|
|
"tags": [],
|
|
|
|
"maintenance": false,
|
|
|
|
"mqttTopic": "",
|
|
|
|
"mqttSuccessMessage": "",
|
|
|
|
"databaseQuery": null,
|
|
|
|
"authMethod": null,
|
|
|
|
"grpcUrl": null,
|
|
|
|
"grpcProtobuf": null,
|
|
|
|
"grpcMethod": null,
|
|
|
|
"grpcServiceName": null,
|
|
|
|
"grpcEnableTls": false,
|
|
|
|
"radiusCalledStationId": null,
|
|
|
|
"radiusCallingStationId": null,
|
|
|
|
"game": null,
|
|
|
|
"httpBodyEncoding": "json",
|
|
|
|
"includeSensitiveData": false
|
|
|
|
},
|
|
|
|
"msg": "[test] [✅ Up] 200 - OK"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
=====================================================================================================================================================================================================
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
"heartbeat": {
|
|
|
|
"monitorID": 89,
|
|
|
|
"status": 0,
|
|
|
|
"time": "2023-07-31 18:57:44.037",
|
|
|
|
"msg": "getaddrinfo ENOTFOUND exampleasdsda.com",
|
|
|
|
"important": true,
|
|
|
|
"duration": 20,
|
|
|
|
"timezone": "Europe/Berlin",
|
|
|
|
"timezoneOffset": "+02:00",
|
|
|
|
"localDateTime": "2023-07-31 20:57:44"
|
|
|
|
},
|
|
|
|
"monitor": {
|
|
|
|
"id": 89,
|
|
|
|
"name": "test",
|
|
|
|
"description": null,
|
|
|
|
"pathName": "test",
|
|
|
|
"parent": null,
|
|
|
|
"childrenIDs": [],
|
|
|
|
"url": "https://exampleasdsda.com",
|
|
|
|
"method": "GET",
|
|
|
|
"hostname": null,
|
|
|
|
"port": null,
|
|
|
|
"maxretries": 1,
|
|
|
|
"weight": 2000,
|
|
|
|
"active": true,
|
|
|
|
"forceInactive": false,
|
|
|
|
"type": "http",
|
|
|
|
"interval": 20,
|
|
|
|
"retryInterval": 20,
|
|
|
|
"resendInterval": 0,
|
|
|
|
"keyword": null,
|
|
|
|
"expiryNotification": false,
|
|
|
|
"ignoreTls": false,
|
|
|
|
"upsideDown": false,
|
|
|
|
"packetSize": 56,
|
|
|
|
"maxredirects": 10,
|
|
|
|
"accepted_statuscodes": [
|
|
|
|
"200-299"
|
|
|
|
],
|
|
|
|
"dns_resolve_type": "A",
|
|
|
|
"dns_resolve_server": "1.1.1.1",
|
|
|
|
"dns_last_result": null,
|
|
|
|
"docker_container": "",
|
|
|
|
"docker_host": null,
|
|
|
|
"proxyId": null,
|
|
|
|
"notificationIDList": {
|
|
|
|
"2": true
|
|
|
|
},
|
|
|
|
"tags": [],
|
|
|
|
"maintenance": false,
|
|
|
|
"mqttTopic": "",
|
|
|
|
"mqttSuccessMessage": "",
|
|
|
|
"databaseQuery": null,
|
|
|
|
"authMethod": null,
|
|
|
|
"grpcUrl": null,
|
|
|
|
"grpcProtobuf": null,
|
|
|
|
"grpcMethod": null,
|
|
|
|
"grpcServiceName": null,
|
|
|
|
"grpcEnableTls": false,
|
|
|
|
"radiusCalledStationId": null,
|
|
|
|
"radiusCallingStationId": null,
|
|
|
|
"game": null,
|
|
|
|
"httpBodyEncoding": "json",
|
|
|
|
"includeSensitiveData": false
|
|
|
|
},
|
|
|
|
"msg": "[test] [🔴 Down] getaddrinfo ENOTFOUND exampleasdsda.com"
|
|
|
|
}
|
|
|
|
|
|
|
|
````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
|
|
|
|
|
|
|
|
|
2023-06-10 00:15:42 +02:00
|
|
|
- endpoint to list all servernames of user (distinct select)
|
2023-01-13 17:17:17 +01:00
|
|
|
|
2023-01-14 00:48:51 +01:00
|
|
|
- weblogin, webapp, ...
|
|
|
|
|
|
|
|
- Pagination for ListChannels / ListSubscriptions / ListClients / ListChannelSubscriptions / ListUserSubscriptions
|
2023-01-13 17:17:17 +01:00
|
|
|
|
2023-05-28 22:27:38 +02:00
|
|
|
- Use only single struct for DB|Model|JSON
|
|
|
|
* needs sq.Converter implementation
|
|
|
|
* needs to handle joined data
|
|
|
|
* rfctime.Time...
|
2023-05-27 23:54:14 +02:00
|
|
|
|
2023-05-30 14:25:55 +02:00
|
|
|
- use job superclass (copy from isi/bnet/?), reduce duplicate code
|
|
|
|
|
2023-07-04 11:31:47 +02:00
|
|
|
- admin panel (especially errors and requests)
|
|
|
|
|
|
|
|
- cli app (?)
|
|
|
|
|
2023-02-03 22:51:03 +01:00
|
|
|
#### FUTURE
|
|
|
|
|
2023-04-21 21:45:16 +02:00
|
|
|
- Remove compat, especially do not create compat id for every new message...
|