Well, it's still in the TestFlight. We need more feedback from users, right now it's a bit on a back burner
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: cwl on November 22, 2025, 11:10:02 AMQuote from: Filipp Sudanov on November 21, 2025, 03:43:38 PMIs this still with SQLite?But generally speaking if SQLite is provided as an option - it has work correctly.
update alarms set alarm_state=3 where alarm_state <> 3;Quote from: Argonauts on November 10, 2025, 09:50:21 AMАктивных алармов 187к -_-
Я могу их как-то скопом потушить? С момента развертывания не трогали алармы
source = FindObject($alarm.sourceObject());
j = JsonObject();
j.set("id", $alarm.id);
j.set("state", $alarm.state);
j.set("severity", $alarm.severity);
j.set("message", $alarm.message);
j.set("source", source ? source.name : "");
j.set("eventCode", $alarm.eventCode);
j.set("eventName", $alarm.eventName);
trace(0, j.serialize());
Quote from: tolimanjo on September 30, 2025, 05:41:40 AMI was getting the '500' error from the client when using HTTP, and a packet capture showed HTTPS style connection attempts to the server. Perhaps Android was trying to be helpful?
Anyway, putting an HTTPS-HTTP proxy in front of the server (and specifying https:// on the client) fixed the problem.
Quote from: cserzs on September 24, 2025, 10:40:58 PMWhat is the syntax of the "Hostname or IP" parameter in the mobile app?
{"description": "NetXMS web service API", "version": "5.2.3.21", "build": "5.2-366-g15daea330f", "apiVersion": 1}⏎
Quote from: johnnyva on September 16, 2025, 07:39:49 AMHey Alex, I'd imagine we should also be checking for dupes on the tdata tables too right?
Quote from: richard21 on September 18, 2025, 07:40:29 PMVery Nice I have it working one Observation / Issue it doesn't let you logon if you have MFA enabled on the account
Quote from: maliodpalube on September 12, 2025, 11:14:39 AMOk, thx, but when trying to import xml template nothing happens it just stands like this indefinitely, can click on ok, only browse or cancel
DO $$
DECLARE
node_record RECORD;
tbl_name TEXT;
dup_count INTEGER;
total_duplicates INTEGER := 0;
BEGIN
FOR node_record IN SELECT id FROM nodes
LOOP
tbl_name := 'idata_' || node_record.id;
IF EXISTS (
SELECT 1
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = tbl_name
) THEN
RAISE NOTICE 'Processing table %', tbl_name;
EXECUTE format('
WITH ranked AS (
SELECT ctid,
ROW_NUMBER() OVER (PARTITION BY item_id, idata_timestamp ORDER BY ctid) as rn
FROM public.%I
)
SELECT COUNT(*)
FROM ranked
WHERE rn > 1
', tbl_name) INTO dup_count;
IF dup_count > 0 THEN
RAISE NOTICE 'Table % has % duplicate rows', tbl_name, dup_count;
total_duplicates := total_duplicates + dup_count;
END IF;
END IF;
END LOOP;
RAISE NOTICE 'Total duplicate rows found: %', total_duplicates;
END $$;
DO $$
DECLARE
node_record RECORD;
tbl_name TEXT;
deleted_count INTEGER;
total_deleted INTEGER := 0;
BEGIN
FOR node_record IN SELECT id FROM nodes
LOOP
tbl_name := 'idata_' || node_record.id;
IF EXISTS (
SELECT 1
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = tbl_name
) THEN
RAISE NOTICE 'Processing table %', tbl_name;
EXECUTE format('
WITH duplicates AS (
SELECT ctid,
ROW_NUMBER() OVER (
PARTITION BY item_id, idata_timestamp
ORDER BY ctid
) as rn
FROM public.%I
)
DELETE FROM public.%I
WHERE ctid IN (
SELECT ctid
FROM duplicates
WHERE rn > 1
)', tbl_name, tbl_name);
GET DIAGNOSTICS deleted_count = ROW_COUNT;
IF deleted_count > 0 THEN
RAISE NOTICE 'Deleted % duplicate rows from table %', deleted_count, tbl_name;
total_deleted := total_deleted + deleted_count;
ELSE
RAISE NOTICE 'Table % has no duplicates', tbl_name;
END IF;
END IF;
END LOOP;
RAISE NOTICE 'Total duplicate rows deleted: %', total_deleted;
END $$;