diff --git a/db/knex_migrations/2023-10-11-1915-push-token-to-32.js b/db/knex_migrations/2023-10-11-1915-push-token-to-32.js new file mode 100644 index 000000000..47e5ac0bf --- /dev/null +++ b/db/knex_migrations/2023-10-11-1915-push-token-to-32.js @@ -0,0 +1,14 @@ +exports.up = function (knex) { + // update monitor.push_token to 32 length + return knex.schema + .alterTable("monitor", function (table) { + table.string("push_token", 32).alter(); + }); +}; + +exports.down = function (knex) { + return knex.schema + .alterTable("monitor", function (table) { + table.string("push_token", 20).alter(); + }); +}; diff --git a/src/lang/en.json b/src/lang/en.json index c75dd7c86..5600254ac 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -244,6 +244,7 @@ "successMessage": "Success Message", "successMessageExplanation": "MQTT message that will be considered as success", "recent": "Recent", + "Reset Token": "Reset Token", "Done": "Done", "Info": "Info", "Security": "Security", diff --git a/src/pages/EditMonitor.vue b/src/pages/EditMonitor.vue index b8e6b7135..cab85fe95 100644 --- a/src/pages/EditMonitor.vue +++ b/src/pages/EditMonitor.vue @@ -119,6 +119,9 @@ {{ $t("needPushEvery", [monitor.interval]) }}
{{ $t("pushOptionalParams", ["status, msg, ping"]) }} + @@ -847,6 +850,8 @@ import { sleep } from "../util"; const toast = useToast(); +const pushTokenLength = 32; + const monitorDefaults = { type: "http", name: "", @@ -1145,7 +1150,9 @@ message HealthCheckResponse { "monitor.type"() { if (this.monitor.type === "push") { if (! this.monitor.pushToken) { - this.monitor.pushToken = genSecret(10); + // ideally this would require checking if the generated token is already used + // it's very unlikely to get a collision though (62^32 ~ 2.27265788 * 10^57 unique tokens) + this.monitor.pushToken = genSecret(pushTokenLength); } } @@ -1348,6 +1355,10 @@ message HealthCheckResponse { return true; }, + resetToken() { + this.monitor.pushToken = genSecret(pushTokenLength); + }, + /** * Submit the form data for processing * @returns {void}