Rotate a database target's archive monthly, daily or hourly (closes #379)
check / check (push) Successful in 3m27s
check / check (push) Successful in 3m27s
A database target's rotation setting (none, monthly, daily or hourly) puts the UTC period of each event's receive time in its archive file name, so each file holds exactly its period's events. It is on the new webhook page and both target forms, and shown in the target list. Renames move every one of a target's files and move them all back if one fails. The sweep prunes one file at a time under the target's lock and deletes a rotated file it leaves empty. Download opens one file at a time, oldest period first, finding each again under the target's current name. The target list names the current file and totals all of them. Model: opus-5-5
This commit was merged in pull request #482.
This commit is contained in:
File diff suppressed because one or more lines are too long
+5
-2
@@ -72,8 +72,8 @@ document.addEventListener("alpine:init", function () {
|
||||
// Something a click shows and hides: the mobile menu, an add form,
|
||||
// an entrypoint's edit form, an event in the event log or in the
|
||||
// recent events, a delivery's attempts, the new webhook page's
|
||||
// archive pruning choice. It starts hidden, or shown when its
|
||||
// element has the data-open attribute.
|
||||
// archive pruning and rotation choices. It starts hidden, or shown
|
||||
// when its element has the data-open attribute.
|
||||
window.Alpine.data("collapsible", function () {
|
||||
return {
|
||||
open: false,
|
||||
@@ -140,6 +140,7 @@ document.addEventListener("alpine:init", function () {
|
||||
timeout: "",
|
||||
maxRetries: "",
|
||||
expiry: "",
|
||||
rotation: "",
|
||||
init() {
|
||||
const refused = this.$root.dataset;
|
||||
|
||||
@@ -151,6 +152,7 @@ document.addEventListener("alpine:init", function () {
|
||||
this.timeout = refused.timeout;
|
||||
this.maxRetries = refused.maxRetries;
|
||||
this.expiry = refused.expiry;
|
||||
this.rotation = refused.rotation;
|
||||
},
|
||||
add() {
|
||||
this.choosing = true;
|
||||
@@ -169,6 +171,7 @@ document.addEventListener("alpine:init", function () {
|
||||
this.timeout = "";
|
||||
this.maxRetries = "";
|
||||
this.expiry = "";
|
||||
this.rotation = "";
|
||||
this.$refs.form.reset();
|
||||
},
|
||||
get filling() {
|
||||
|
||||
Reference in New Issue
Block a user