- layouts.md: tab set must be the last child of its frame set (web); desktop tab frames ignore zoom (navigate ... stretchDisplay); web activates the last tab loaded; web tab labels = display title; one layout command at a time; connectionState breaks the web layout (corrects 6.3); per-user layout verified on desktop and web - create-display.md: new section "Writing display XML directly" (text size, rounding, arc angles clockwise on both clients, Clicked b1, web item attributes, asDateTime, server-side command as CIX_PROCESS with group OPERATOR, alarm overview columns / white area) - deploy-displays.md: 8-display sample scripts; jwuiutl -v re-saves files - trend.md: CIENG_TrendLab as history, cieng_feed.ps1, 50-pen hairline trade-off, component opaque, micro trend "Record not found" without history - users-groups.md: PASSWORD "" for an empty password; sample user CIENG; open session blocks group removal (DSSSDA03 stopped) - configure-audit.md, L25 / R30 / C50 summaries, SKILL.md, issues ISS-068..075, progress rows - Every statement tested on CI Server R1.03.00 2026-10-02..06 (desktop and web, test display and test layouts removed afterwards) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.8 KiB
| task | version | source | status |
|---|---|---|---|
| Create, check and remove authorization groups and users with quick load | R1.03 | IM 36K10C10-01EN §2.4, §2.5; data dictionary (`dssqld -f`); practiced on the test system 2026-09-30 | verified |
Authorization groups and users (quick load)
Engineering Module equivalent: Authorization → Authorization groups / User → Add.
Datasets: AUTH_GROUP_DF (groups), AUTH_ACTION_DF (allowed action names), USER_DF
(users). Works from a normal prompt while CI Server is running. Use short relative file
names (cd to the folder first): long absolute paths are cut (ISS-020).
List what exists
dssqld -e groups.qli -d AUTH_GROUP_DF -c -l groups.lst
dssqld -e users.qli -d USER_DF -c -l users.lst
dssqld -e actions.qli -d AUTH_ACTION_DF -c -l actions.lst
Installed on R1.03: groups SYSTEM_MANAGER, ENGINEER, OPERATOR, GUEST; users ADMIN,
ADMINE, OPER, CI_NO_LOGIN_OPCUAS. Passwords export as ****.
Group
Required: NAME. Actions go in ACTION_NAME_1, ACTION_NAME_2, … and must be names from
AUTH_ACTION_DF (e.g. ITEM_READ, ITEM_MODIFY_VALUE, SECTION_BLOCK_UNBLOCK,
ALARM_CURRENT_ACK). Example (examples/CI-Eng-Sample/08_auth_group_df.qli):
@FIELDS
NAME,DESCRIPTION,ACTION_NAME_1,ACTION_NAME_2,ACTION_NAME_3,ACTION_NAME_4
@AUTH_GROUP_DF
"CIENG_VIEWER","CI-Eng-Sample read-only viewer","ITEM_READ","SECTION_READ","ALARM_CURRENT_READ","ALARM_CHRONO_READ"
User
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, 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
NAME,DESCRIPTION,AUTH_GROUP,PROCESS_AREAS,LOGOFF_TIMEOUT
@USER_DF
"<USER>","<description>","CIENG_VIEWER","1-999",15
Defaults filled in on import (seen): display authorization level 999, language System, playback HMI Client dependent / No, merge priority 1. Changes take effect at the user's next login.
Check and remove
Filtered export (@SELECT, see system-management task export-dataset.md):
@SELECT
'NAME = "<USER>"'
@USER_DF
Remove users first, then the group, in one NAME-only file (dssqld -r):
@FIELDS
NAME
@USER_DF
"<USER>"
@AUTH_GROUP_DF
"CIENG_VIEWER"
Test system (2026-09-30)
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).