diff --git a/.claude/skills/audit-trail/tasks/configure-audit.md b/.claude/skills/audit-trail/tasks/configure-audit.md index 90e62af..8684bfc 100644 --- a/.claude/skills/audit-trail/tasks/configure-audit.md +++ b/.claude/skills/audit-trail/tasks/configure-audit.md @@ -35,7 +35,8 @@ switching anything off. `ITEM_DF` / `SUB_ITEM_DF` / `EXTERNAL_ALARM_DF` field `AUDIT_INFO` (default 0). It switches the `ITEM.*` / `SUB-ITEM.*` events raised by ITEM Service for **operator writes**. Verified on -`CI-Eng-Sample.PUMP1.MODE` with the buttons on display `CIENG_Tank`: +`CI-Eng-Sample.PUMP1.MODE` with the buttons on display `CIENG_Tank` (2026-10-01; re-checked +2026-10-06 with *Manual* / *Auto* on `CIENG_Control`: same events, user and old / new value): - `AUDIT_INFO` 1: a button write 0 → 1 stored `ITEM` `VALUE` `MODIFY` `OPER-INTERFACE`, user `ADMIN`, old 0 / new 1, plus `ITEM` `STATUS` `MODIFY` (13 → 9). - `AUDIT_INFO` 0: the write 1 → 0 left **no** audit record. diff --git a/.claude/skills/authorization/tasks/users-groups.md b/.claude/skills/authorization/tasks/users-groups.md index 8da8f1d..cb1f84c 100644 --- a/.claude/skills/authorization/tasks/users-groups.md +++ b/.claude/skills/authorization/tasks/users-groups.md @@ -41,8 +41,11 @@ NAME,DESCRIPTION,ACTION_NAME_1,ACTION_NAME_2,ACTION_NAME_3,ACTION_NAME_4 Required: `NAME` (≤ 32) and `AUTH_GROUP` (an existing group). Optional: `DESCRIPTION`, `PROCESS_AREAS` (e.g. `"1-999"`), `LOGOFF_TIMEOUT` (minutes, 0–999), `INITIAL_DISPLAY`, -`LOCALE`, `ENTERPRISE`, playback fields. A password is **not** required on import; set it in -the Engineering Module (the user does this, not Claude). Template: +`LOCALE`, `ENTERPRISE`, `LAYOUT`, playback fields. Password: without a `PASSWORD` field the user +is created **without any password set** and every logon fails with *DSS-E-UNK_USER Unknown user +name/password combination*; set the password in the Engineering Module (the user does this, not +Claude). A user with an **empty** password is created by giving `PASSWORD ""` explicitly +(tested 2026-10-06, sample user `CIENG`: logon on desktop and web). Template: ``` @FIELDS @@ -81,6 +84,20 @@ NAME ## Test system (2026-09-30) -Group `CIENG_VIEWER` and user `CIENG_TEST` (no password, logoff 15 min) loaded with 0 errors, -exported back as defined, then removed (1 + 1 removed, 0 errors). The group is part of -CI-Eng-Sample; the sample creates no users. +Group `CIENG_VIEWER` and user `CIENG_TEST` (no `PASSWORD` field, logoff 15 min) loaded with 0 +errors, exported back as defined, then removed (1 + 1 removed, 0 errors). Logon was not tried; +such a user cannot log on (see *User*). The group is part of CI-Eng-Sample. + +## Sample user (2026-10-06) + +`examples/CI-Eng-Sample/08b_user_df.qli`: user `CIENG`, `PASSWORD ""`, factory group `OPERATOR`, +`LAYOUT` `CIENG_Operator`, `INITIAL_DISPLAY` `CIENG_Overview`; logs on to that layout on the desktop +and on the web (no `?l=` needed). Removal (`85_remove_auth_group_df.qli`) removes the user before +the group. + +**Log out all sessions of a user before removing its group**: while a session is open the group +is still referenced in `USER_VAL` and `dssqld -r` fails with *DSSP-E-NODEL … in dataset +USER_VAL*; logging out did not free it at once, and a retry in that state stopped the process +`DSSSDA03` (*DUR-F-BAD_SIZE, Negative size not allowed*; later requests failed with +*DUR-F-UNKNOWN_ATT*) until CI Server was restarted (2026-10-06, ISS-073). After a restart the +group was removed without error. `USER_VAL` exports only its header (no way to list sessions). diff --git a/.claude/skills/graphics/SKILL.md b/.claude/skills/graphics/SKILL.md index e49bb9f..a70a4a6 100644 --- a/.claude/skills/graphics/SKILL.md +++ b/.claude/skills/graphics/SKILL.md @@ -38,10 +38,11 @@ Rules: | Task | File | Status | |---|---|---| | Build a display in the Edit Module (text, number field, alarm overview, trend) and check the saved XML | `tasks/create-display.md` | verified | +| Write display XML directly / with the sample generator (text size, rounding, arc angles, item attributes for the web, server-side command, alarm overview columns) | `tasks/create-display.md` (*Writing display XML directly*), `examples/CI-Eng-Sample/displays/generator/` | verified 2026-10-06 | | Deploy / remove display files, export HTML, validate and search with `jwuiutl` | `tasks/deploy-displays.md` | verified | | Trend: pen sources (history group, aggregates), every pen and chart setting, desktop vs HTML display, 50-pen web workaround (`add_trend_spares.ps1`), Micro Trend | `tasks/trend.md` | verified (desktop); web workaround verified; Micro Trend open (ISS-055) | | Open and check a display in the browser (HTML display / Mobile Operator) | `tasks/deploy-displays.md` §4 | verified | -| Operator layouts (`Layouts.xml`): windows, menus, toolbars, frames, popups, kiosk screens; open displays in frames and layouts; every parameter and command, desktop vs web (§6) | `tasks/layouts.md` | verified (dual screen, per-user layout from docs) | +| Operator layouts (`Layouts.xml`): windows, menus, toolbars, frames, popups, kiosk screens; open displays in frames and layouts; every parameter and command, desktop vs web (§6) | `tasks/layouts.md` | verified (per-user layout 2026-10-06; dual screen from docs) | | Dataset forms (`*Dia.xml`) and the form description language | R30 summary §3 | from docs | | Symbols, parameters, actions, localisation, record/playback | C50 summary §1, §4, §5 | from docs | | AOG library (styles, symbols, faceplates, templates) | C60 summary | from docs | diff --git a/.claude/skills/graphics/tasks/create-display.md b/.claude/skills/graphics/tasks/create-display.md index 7b675fb..0419507 100644 --- a/.claude/skills/graphics/tasks/create-display.md +++ b/.claude/skills/graphics/tasks/create-display.md @@ -1,14 +1,15 @@ --- task: Build a display in the Edit Module and check the saved file version: R1.03 -source: IM 36K10C50-01EN §1.2, §1.7, §2, §4.8.1; practiced on CI-Eng-Sample (display CIENG_Tank) 2026-10-01 +source: IM 36K10C50-01EN §1.2, §1.7, §2, §4.8.1; practiced on CI-Eng-Sample (display CIENG_Tank) 2026-10-01; display XML written by the sample generator and checked on desktop and web 2026-10-02 to 2026-10-06 (installed web client code, component definitions in DEPLOY\components) status: verified --- # Build a display (Edit Module) -The user draws; Claude gives the steps and checks the result. Example = the sample display -`examples/CI-Eng-Sample/displays/CIENG_Tank.xml`. +The user draws; Claude gives the steps and checks the result. The sample displays +`examples/CI-Eng-Sample/displays/CIENG_*.xml` are not drawn but written by a generator +(`displays/generator/`); *Writing display XML directly* lists the rules they follow. ## Steps for the user @@ -38,8 +39,8 @@ grep -n "\|\|\|itemName\|itemId\|.xml - `true` = HTML mode; ``/`` must be set for the HTML display. - Item connections: `` + `` (node.group.number…); trend pens: `` (`uri=""` = empty pen). -- Write a fixed value with a button (verified in the HTML display, `CIENG_Tank` *Manual (0)* / - *Auto (1)*): `