Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
0d31187
clean repo for overhaul
rajnandan1 Jan 22, 2026
0149b3e
first commit for version 4, very unstable
rajnandan1 Jan 22, 2026
6b88cf1
changes
Jan 22, 2026
0709111
Refactor monitoring data retrieval and caching mechanisms; enhance mo…
rajnandan1 Jan 22, 2026
d6b68e3
Refactor monitoring components and enhance latency handling; update U…
rajnandan1 Jan 23, 2026
9f2ab70
changes
Jan 23, 2026
2dce981
changes
rajnandan1 Jan 24, 2026
b51fc19
changes
rajnandan1 Jan 24, 2026
4608b03
alerting new set up done
rajnandan1 Jan 26, 2026
b4aeb51
Update seed function to insert all alert templates when no templates …
rajnandan1 Jan 26, 2026
c4f0945
subs v1
rajnandan1 Jan 26, 2026
d0d8e60
changes
rajnandan1 Jan 27, 2026
af829fa
changes
rajnandan1 Jan 28, 2026
28bfd8c
refactor: simplify SubscribeMenu props and integrate subscription set…
rajnandan1 Jan 28, 2026
b7023b7
changes
rajnandan1 Jan 29, 2026
e714fe8
changes
rajnandan1 Jan 29, 2026
2abb266
changes
Jan 29, 2026
463d1c8
changes
rajnandan1 Jan 30, 2026
8a0e1e7
changes
rajnandan1 Jan 30, 2026
93f91ab
changes
Jan 30, 2026
c77985f
i18n
rajnandan1 Jan 30, 2026
8f187aa
Implement sub-menu options configuration and localization updates
rajnandan1 Jan 31, 2026
accdd76
changes
rajnandan1 Jan 31, 2026
3165567
added few apis
rajnandan1 Feb 2, 2026
8bd26cc
delete trigger
rajnandan1 Feb 2, 2026
6c15d48
new api spec
rajnandan1 Feb 2, 2026
d851610
Implement theme configuration and user preferences for status page
rajnandan1 Feb 2, 2026
00511da
changes
Feb 2, 2026
24872d2
changes
Feb 2, 2026
98c723c
changes
Feb 2, 2026
045ce12
Implement monitor management components including DangerZoneCard, Gen…
rajnandan1 Feb 2, 2026
34605fe
Remove email customization feature and related API endpoints from the…
rajnandan1 Feb 3, 2026
3295b7b
docs
rajnandan1 Feb 3, 2026
601186d
good docs
Feb 3, 2026
331cd5b
Refactor documentation structure and enhance monitor features with ne…
rajnandan1 Feb 4, 2026
e92c8a0
added docs might get modified for api monitors
Feb 4, 2026
4d0e135
changes
Feb 4, 2026
52c76fc
clean up
rajnandan1 Feb 5, 2026
08f72e5
Enhance monitoring functionality with new uptime calculations and ale…
rajnandan1 Feb 5, 2026
2d7d6a3
fixes
rajnandan1 Feb 5, 2026
9a0ca6c
Create alert configuration and logs pages with functionality for mana…
rajnandan1 Feb 5, 2026
96fd8d0
Create maintenance documentation for impact on monitoring, overview, …
rajnandan1 Feb 5, 2026
ba41c6f
Implement password reset functionality with email template and API en…
rajnandan1 Feb 5, 2026
6ed95ed
Implement user invitation system with password setup and validation
rajnandan1 Feb 6, 2026
6aa43fa
Implement URL resolver functions for client and server, update naviga…
rajnandan1 Feb 6, 2026
038c52a
base path adding
Feb 6, 2026
845132f
base path adding
Feb 6, 2026
a20125a
changes
rajnandan1 Feb 6, 2026
1c05e2d
style: Update LanguageSelector and ThemePlus components for improved …
rajnandan1 Feb 7, 2026
baa9449
refactor: Update components for improved styling and theme handling
rajnandan1 Feb 7, 2026
47c00c2
refactor: Replace IsLoggedInSession with GetLoggedInSession and updat…
rajnandan1 Feb 7, 2026
cdc0de9
refactor: Update SMTP configuration handling and improve email setup …
rajnandan1 Feb 7, 2026
be0745f
Initial plan
Claude Feb 7, 2026
4ff1604
feat: Add documentation-writer Claude skill
Claude Feb 7, 2026
7f32802
Merge pull request #575 from rajnandan1/claude/create-documentation-s…
rajnandan1 Feb 7, 2026
7392b96
cvcc
rajnandan1 Feb 8, 2026
c759ade
file clean up
rajnandan1 Feb 8, 2026
72a28ca
changes
rajnandan1 Feb 8, 2026
9e8b096
changes
rajnandan1 Feb 9, 2026
ee1adf8
vv
rajnandan1 Feb 9, 2026
228808a
stable
Feb 9, 2026
eed71d3
added group
Feb 9, 2026
8a498e9
refactor: update tooltip styles and improve component structure acros…
rajnandan1 Feb 9, 2026
9b99bec
Create Dockerfile and Docker Compose configurations for Kener v4 appl…
rajnandan1 Feb 10, 2026
c58530c
cleanup 1
rajnandan1 Feb 10, 2026
5f86ca2
analystic 101
rajnandan1 Feb 10, 2026
3208105
track: implement event tracking for user interactions across multiple…
rajnandan1 Feb 10, 2026
2377a4f
changes
Feb 10, 2026
17ed56c
changes
rajnandan1 Feb 10, 2026
1f370b3
changes
rajnandan1 Feb 11, 2026
290113d
refactor: update layout and styling for MinuteGrid and MonitorDayDeta…
rajnandan1 Feb 11, 2026
d99da14
sas
Feb 11, 2026
21f06a4
hb
rajnandan1 Feb 11, 2026
366c2c0
refactor: update heartbeat handling and monitoring logic, enhance UI …
rajnandan1 Feb 12, 2026
8fd8aa4
refactor: implement CloneMonitor functionality and enhance monitor lo…
rajnandan1 Feb 12, 2026
6ea045d
refactor: implement site announcement feature with management UI and …
rajnandan1 Feb 12, 2026
09afbbd
refactor: optimize npm installation step by removing cache mount
rajnandan1 Feb 12, 2026
552bdc0
refactor: enhance ping and tcp monitoring logic, improve error handli…
rajnandan1 Feb 13, 2026
275c9d7
changes
Feb 13, 2026
d1eb926
changes
Feb 13, 2026
444fe58
ui revamp
rajnandan1 Feb 13, 2026
d04ee0a
changes
rajnandan1 Feb 14, 2026
d170ba6
refactor: enhance documentation and improve page titles with site name
rajnandan1 Feb 14, 2026
5a95c81
refactor: restrict role updates in user data modification
rajnandan1 Feb 14, 2026
e6424b1
refactor: integrate @humanspeak/svelte-purify for enhanced HTML sanit…
rajnandan1 Feb 15, 2026
d758de0
refactor: enhance image upload ID generation with file extension
rajnandan1 Feb 15, 2026
7b3afa4
so many
rajnandan1 Feb 16, 2026
5989e5b
refactor: improve error handling and logging in GamedigCall, SqlCall,…
rajnandan1 Feb 16, 2026
14d46cb
Merge main into next/4-pre-alpha (keep overhaul changes)
rajnandan1 Feb 16, 2026
b088a79
refactor: update logging in analyticsEvent function and improve laten…
rajnandan1 Feb 16, 2026
9129e96
changes
Feb 16, 2026
88072b7
changes
rajnandan1 Feb 16, 2026
58f0e9f
refactor: remove copy current page link option and implement sharing …
rajnandan1 Feb 17, 2026
3aedb9b
refactor: restructure authentication flow and remove obsolete API end…
rajnandan1 Feb 17, 2026
9a8bf84
changes
Feb 17, 2026
1c485ac
go live
rajnandan1 Feb 20, 2026
c9c675d
changes
Feb 20, 2026
4b23e72
changes
rajnandan1 Feb 20, 2026
e5e244e
refactor: enhance MonitorBar component with layout options and improv…
rajnandan1 Feb 21, 2026
bf126e7
refactor: implement event display settings for incidents and maintena…
rajnandan1 Feb 21, 2026
1c6bed1
changes
rajnandan1 Feb 21, 2026
cbc48d2
docs updates
rajnandan1 Feb 22, 2026
585db91
refactor: enhance layout and site data handling with social preview i…
rajnandan1 Feb 22, 2026
339d653
delete static files
rajnandan1 Feb 22, 2026
50482aa
changes
rajnandan1 Feb 22, 2026
78bad84
refactor: update workflow to publish nightly Docker images with impro…
rajnandan1 Feb 22, 2026
3363e90
chore(locales): Update translations for multiple languages and add ne…
rajnandan1 Feb 23, 2026
9199b80
chore: Update environment variables and documentation for ORIGIN requ…
rajnandan1 Feb 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
changes
  • Loading branch information
Raj Nandan Sharma Raj Nandan Sharma
Raj Nandan Sharma authored and Raj Nandan Sharma committed Feb 16, 2026
commit 9129e9606cb38a34848825b4d141e960bbda0cef
133 changes: 0 additions & 133 deletions migrations/20250111153517_init.js

This file was deleted.

127 changes: 127 additions & 0 deletions migrations/20250111153517_init.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
import type { Knex } from "knex";

export async function up(knex: Knex): Promise<void> {
await knex.schema
.createTable("monitoring_data", (table) => {
table.string("monitor_tag", 255).notNullable();
table.integer("timestamp").notNullable();
table.text("status");
table.float("latency", 8, 2);
table.text("type");
table.primary(["monitor_tag", "timestamp"]);
})
// Create monitor_alerts table
.createTable("monitor_alerts", (table) => {
table.increments("id").primary();
table.string("monitor_tag", 255).notNullable();
table.string("monitor_status", 255).notNullable();
table.string("alert_status", 255).notNullable();
table.integer("health_checks").notNullable();
table.integer("incident_number").defaultTo(0);
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
})
// Add index to monitor_alerts table
.raw("CREATE INDEX idx_monitor_tag_created_at ON monitor_alerts (monitor_tag, created_at)")
.createTable("site_data", (table) => {
table.increments("id").primary();
table.string("key", 255).notNullable().unique();
table.text("value").notNullable();
table.string("data_type", 255).notNullable();
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
})
.createTable("monitors", (table) => {
table.increments("id").primary();
table.string("tag", 255).notNullable().unique();
table.string("name", 255).notNullable().unique();
table.text("description");
table.text("image");
table.string("cron", 255);
table.string("default_status", 255);
table.string("status", 255);
table.string("category_name", 255);
table.string("monitor_type", 255);
table.string("down_trigger", 255);
table.string("degraded_trigger", 255);
table.text("type_data");
table.integer("day_degraded_minimum_count");
table.integer("day_down_minimum_count");
table.string("include_degraded_in_downtime", 255).defaultTo("NO");
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
})
.createTable("triggers", (table) => {
table.increments("id").primary();
table.string("name", 255).notNullable().unique();
table.string("trigger_type", 255);
table.text("trigger_desc");
table.string("trigger_status", 255);
table.text("trigger_meta");
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
})
.createTable("users", (table) => {
table.increments("id").primary();
table.string("email", 255).notNullable().unique();
table.string("name", 255).notNullable();
table.string("password_hash", 255).notNullable();
table.integer("is_active").defaultTo(1);
table.integer("is_verified").defaultTo(0);
table.string("role", 255).defaultTo("user");
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
})
.createTable("api_keys", (table) => {
table.increments("id").primary();
table.string("name", 255).notNullable().unique();
table.string("hashed_key", 255).notNullable().unique();
table.string("masked_key", 255).notNullable();
table.string("status", 255).defaultTo("ACTIVE");
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
})
.createTable("incidents", (table) => {
table.increments("id").primary();
table.string("title", 255).notNullable();
table.integer("start_date_time").notNullable();
table.integer("end_date_time");
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
table.string("status", 255).defaultTo("ACTIVE");
table.string("state", 255).defaultTo("INVESTIGATING");
})
.createTable("incident_monitors", (table) => {
table.increments("id").primary();
table.string("monitor_tag", 255).notNullable();
table.string("monitor_impact", 255);
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
table.integer("incident_id").notNullable();
table.unique(["monitor_tag", "incident_id"]);
})
.createTable("incident_comments", (table) => {
table.increments("id").primary();
table.text("comment").notNullable();
table.integer("incident_id").notNullable();
table.integer("commented_at").notNullable();
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
table.string("status", 255).defaultTo("ACTIVE");
table.string("state", 255).defaultTo("INVESTIGATING");
});
}

export async function down(knex: Knex): Promise<void> {
await knex.schema
.dropTableIfExists("monitor_alerts")
.dropTableIfExists("monitoring_data")
.dropTableIfExists("site_data")
.dropTableIfExists("monitors")
.dropTableIfExists("triggers")
.dropTableIfExists("users")
.dropTableIfExists("api_keys")
.dropTableIfExists("incidents")
.dropTableIfExists("incident_monitors")
.dropTableIfExists("incident_comments");
}
11 changes: 0 additions & 11 deletions migrations/20250201152526_add_new_column_to_incidents.js

This file was deleted.

13 changes: 13 additions & 0 deletions migrations/20250201152526_add_new_column_to_incidents.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import type { Knex } from "knex";

export async function up(knex: Knex): Promise<void> {
await knex.schema.alterTable("incidents", function (table) {
table.text("incident_type").defaultTo("INCIDENT");
});
}

export async function down(knex: Knex): Promise<void> {
await knex.schema.alterTable("incidents", function (table) {
table.dropColumn("incident_type");
});
}
11 changes: 0 additions & 11 deletions migrations/20250222153624_add_incident_source_column.js

This file was deleted.

14 changes: 14 additions & 0 deletions migrations/20250222153624_add_incident_source_column.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type { Knex } from "knex";


export async function up(knex: Knex): Promise<void> {
await knex.schema.alterTable("incidents", function (table) {
table.text("incident_source").defaultTo("DASHBOARD");
});
}

export async function down(knex: Knex): Promise<void> {
await knex.schema.alterTable("incidents", function (table) {
table.dropColumn("incident_source");
});
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
export function up(knex) {
return knex.schema.createTable("invitations", (table) => {
import type { Knex } from "knex";

export async function up(knex: Knex): Promise<void> {
await knex.schema.createTable("invitations", (table) => {
// Primary key
table.increments("id").primary();

Expand All @@ -29,10 +27,6 @@ export function up(knex) {
});
}

/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
export function down(knex) {
return knex.schema.dropTableIfExists("invitations");
export async function down(knex: Knex): Promise<void> {
await knex.schema.dropTableIfExists("invitations");
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
export function up(knex) {
return knex.schema
import type { Knex } from "knex";

export async function up(knex: Knex): Promise<void> {
await knex.schema
.createTable("subscribers", (table) => {
table.increments("id").primary();
table.string("subscriber_send").notNullable();
Expand Down Expand Up @@ -40,9 +42,8 @@ export function up(knex) {
table.datetime("updated_at").defaultTo(knex.fn.now());
});
}

export function down(knex) {
return knex.schema
export async function down(knex: Knex): Promise<void> {
await knex.schema
.dropTableIfExists("subscription_triggers")
.dropTableIfExists("subscriptions")
.dropTableIfExists("subscribers");
Expand Down
Loading
Loading