Initial commit: Wonderware / System Platform tools and reference

Five tools under one repo, all docs organized per DOCS-GUIDE.md:

- aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary
  logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands:
  last, tail, range, unread, fields. Stable JSON envelope under --llm-json.
  Build template under lib/build/ for rebuilding aaLogReader.dll.

- aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide
  (Markdown converted from CHM), API reference for the ArchestrA.Toolkit
  namespace, and the Monitor / Watchdog VS sample solutions.

- graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy
  configuration via the ArchestrA GRAccess COM interop. Includes session
  daemon, IPC protocol, and llm-json envelope contract.

- grdb: SQL/DDL exploration of the Galaxy Repository database. DDL
  captures, reusable queries, hierarchy / contained-name <-> tag-name
  translation notes.

- histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL
  linked-server, extension tables, every wwXxx time-domain extension,
  every retrieval mode, alarm/event SQL recipes, REST API. Distilled
  from the 243-page Historian Retrieval Guide.

Root contains:
- CLAUDE.md: thin index pointing into each tool's README.
- DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-03 18:22:20 -04:00
commit 32f26272ae
411 changed files with 69973 additions and 0 deletions
+309
View File
@@ -0,0 +1,309 @@
# GRAccess Operations Reference
Operations supported by the ArchestrA GRAccess library, organized by functional area.
Page references link to sections in `graccess_documentation.md`.
---
## Galaxy Management (IGRAccess — Pages 101104)
| Operation | Method | Description |
|---|---|---|
| Query galaxies | `QueryGalaxies(nodeName)` | List available galaxies on a GR node |
| Create galaxy | `CreateGalaxy(name, nodeName, hasSecurity, authMode, description)` | Create a new galaxy |
| Create from template | `CreateGalaxyFromTemplate(...)` | Create a galaxy from a template |
| Delete galaxy | `DeleteGalaxy(galaxyName, nodeName)` | Delete a galaxy |
## Galaxy Connection & Session (IGalaxy — Pages 3555)
| Operation | Method | Description |
|---|---|---|
| Login | `Login(userName, password)` | Log in with forced client sync |
| Login (extended) | `LoginEx(userName, password, forceSynchronization)` | Log in with optional deferred sync |
| Synchronize | `SynchronizeClient()` | Sync client with server |
| Logout | `Logout()` | Log out from the galaxy |
| Get version | `VersionString` / `VersionNumber` | Retrieve galaxy version |
| Check upgrade needed | `UpgradeRequired` | Check if galaxy needs upgrade |
| Migrate galaxy | `MigrateGalaxy(galaxyName, grNodeName)` | Upgrade a galaxy |
## Galaxy Backup & Restore (IGalaxy — Pages 3940, 4748)
| Operation | Method | Description |
|---|---|---|
| Backup | `Backup(processId, backupFile, nodeName, galaxyName)` | Back up a galaxy to file |
| Restore | `Restore(processId, backupFile, nodeName, galaxyName, restoreOlder)` | Restore a galaxy from backup |
## Object Queries (IGalaxy — Pages 3738, 4445, 5152)
| Operation | Method | Description |
|---|---|---|
| Query by name | `QueryObjectsByName(templateOrInstance, tagnames[])` | Find objects by tagname array |
| Query by condition | `QueryObjects(templateOrInstance, conditionType, value, matchCondition)` | Find objects by single condition |
| Query multi-condition | `QueryObjectsMultiCondition(templateOrInstance, conditions)` | Find objects by multiple conditions |
| Create conditions | `CreateConditionsObject()` | Create an IConditions for multi-condition queries |
### Condition (ICondition — Page 29, IConditions — Pages 3032)
| Property/Method | Description |
|---|---|
| `Kind` | Condition type (EConditionType) |
| `Value` | Value to search for |
| `Negation` | Negate the expression |
| `Add(condition)` | Add a condition to the collection |
| `Remove(index)` | Remove a condition |
| `Join(condition)` | Join two conditions |
## Template Operations (ITemplate — Pages 182207)
| Operation | Method | Description |
|---|---|---|
| Create instance | `CreateInstance(name, createContainedObjects)` | Create a single instance from template |
| Create instances | `CreateInstances(tagnames[], createContainedObjects)` | Create multiple instances from template |
| Create derived template | `CreateTemplate(name, createContainedObjects)` | Derive a new template |
| Delete template | `DeleteTemplate(forceOption)` | Delete the template |
| Check out | `CheckOut()` | Check out for editing |
| Check in | `CheckIn(comment)` | Check in with comment |
| Undo check out | `UndoCheckOut()` | Discard checkout changes |
| Save | `Save()` | Save after configuration |
| Unload | `Unload()` | Release object cache |
| Add UDA | `AddUDA(name, dataType, category, security, isArray, arrayCount)` | Add a user-defined attribute |
| Delete UDA | `DeleteUDA(name)` | Delete a UDA |
| Rename UDA | `RenameUDA(oldName, newName)` | Rename a UDA |
| Update UDA | `UpdateUDA(name, dataType, category, security, isArray, arrayCount)` | Modify a UDA |
| Add extension primitive | `AddExtensionPrimitive(type, name, isObjectExtension)` | Add an extension primitive |
| Delete extension primitive | `DeleteExtensionPrimitive(type, name)` | Delete an extension primitive |
| Rename extension primitive | `RenameExtensionPrimitive(oldName, newName)` | Rename an extension primitive |
| Get extended attributes | `GetExtendedAttributes(attrName, upToLevel, categories[])` | Get attributes across hierarchy |
| Get help URL | `GetObjectHelpURL()` | Get object help URL |
### Template Properties (ITemplate — Pages 182207)
| Property | Description |
|---|---|
| `Tagname` | Object tagname (read/write) |
| `ContainedName` | Contained name (read/write) |
| `HierarchicalName` | Full hierarchical name (read-only) |
| `DerivedFrom` | Parent template name |
| `BasedOn` | Root ancestor template name |
| `Category` | Object category (ECATEGORY) |
| `CategoryGUID` | Category GUID |
| `Container` | Container object (read/write) |
| `Area` | Area object (read/write) |
| `Host` | Host assignment (read/write) |
| `Toolset` | Toolset membership (read/write) |
| `Attributes` | All attributes collection |
| `ConfigurableAttributes` | Editable attributes collection |
| `ConfigVersion` | Configuration version number |
| `CheckoutStatus` | Checkout status (ECheckoutStatus) |
| `CheckedOutBy` | User who checked out |
| `EditStatus` | Edit status (EEditStatus) |
| `ValidationStatus` | Validation status (EPACKAGESTATUS) |
| `Errors` | Validation error list |
| `Warnings` | Validation warning list |
| `CommandResult` | Last operation result |
| `CommandResults` | Last batch operation results |
## Instance Operations (IInstance — Pages 104133)
| Operation | Method | Description |
|---|---|---|
| Delete instance | `DeleteInstance()` | Delete this instance |
| Deploy | `Deploy()` | Deploy the instance |
| Deploy (extended) | `DeployEx(...)` | Deploy with extended options |
| Undeploy | `Undeploy()` | Undeploy the instance |
| Undeploy (extended) | `UndeployEx(...)` | Undeploy with extended options |
| Upload | `Upload()` | Upload runtime config changes |
| Upload (extended) | `UploadEx(...)` | Upload with extended options |
| Check out | `CheckOut()` | Check out for editing |
| Check in | `CheckIn(comment)` | Check in with comment |
| Undo check out | `UndoCheckOut()` | Discard checkout changes |
| Save | `Save()` | Save after configuration |
| Unload | `Unload()` | Release object cache |
| Add UDA | `AddUDA(name, dataType, category, security, isArray, arrayCount)` | Add a user-defined attribute |
| Delete UDA | `DeleteUDA(name)` | Delete a UDA |
| Rename UDA | `RenameUDA(oldName, newName)` | Rename a UDA |
| Update UDA | `UpdateUDA(name, dataType, category, security, isArray, arrayCount)` | Modify a UDA |
| Add extension primitive | `AddExtensionPrimitive(type, name, isObjectExtension)` | Add an extension primitive |
| Delete extension primitive | `DeleteExtensionPrimitive(type, name)` | Delete an extension primitive |
| Rename extension primitive | `RenameExtensionPrimitive(oldName, newName)` | Rename an extension primitive |
| Get extended attributes | `GetExtendedAttributes(attrName, upToLevel, categories[])` | Get attributes across hierarchy |
| Get help URL | `GetObjectHelpURL()` | Get object help URL |
### Instance Properties (IInstance — Pages 104133)
All properties from ITemplate above, plus:
| Property | Description |
|---|---|
| `DeployedVersion` | Config version at last deploy |
| `DeploymentStatus` | Deploy status (EDeploymentStatus) |
## Bulk Object Operations (IgObjects — Pages 87101)
| Operation | Method | Description |
|---|---|---|
| Check out (bulk) | `CheckOut()` | Check out all objects in collection |
| Check in (bulk) | `CheckIn(comment)` | Check in all objects |
| Undo check out (bulk) | `UndoCheckOut()` | Undo checkout for all objects |
| Deploy (bulk) | `Deploy()` | Deploy all instances in collection |
| Deploy (bulk extended) | `DeployEx(...)` | Deploy with extended options |
| Undeploy (bulk) | `Undeploy()` | Undeploy all instances |
| Undeploy (bulk extended) | `UndeployEx(...)` | Undeploy with extended options |
| Upload (bulk) | `Upload()` | Upload runtime changes for all |
| Upload (bulk extended) | `UploadEx(...)` | Upload with extended options |
| Delete all | `DeleteAllObjects()` | Delete all objects in collection |
| Export objects | `ExportObjects(exportType, outputFile)` | Export objects from galaxy |
| Export as protected | `ExportObjectsAsProtected(...)` | Export as protected |
| Add to collection | `Add(gObject)` | Add an object to the list |
| Add from collection | `AddFromCollection(gObjects)` | Merge another collection |
| Set area (bulk) | `Area` (set) | Set area for all objects |
| Set host (bulk) | `Host` (set) | Set host for all objects |
| Set container (bulk) | `Container` (set) | Set container for all objects |
| Set security group (bulk) | `SecurityGroup` (set) | Set security group for all objects |
## Attribute Operations (IAttribute — Pages 1320, IAttributes — Pages 2124)
### IAttribute
| Operation | Method/Property | Description |
|---|---|---|
| Get value | `Value` | Get the attribute value (IMxValue) |
| Set value | `SetValue(mxValue)` | Set the attribute value |
| Get name | `Name` | Attribute name |
| Get data type | `DataType` | Attribute data type (MxDataType) |
| Get category | `AttributeCategory` | Attribute category |
| Get security | `SecurityClassification` | Security classification |
| Set security | `SetSecurityClassification(classification)` | Change security classification |
| Get locked state | `Locked` | Whether attribute is locked |
| Set locked state | `SetLocked(locked)` | Lock/unlock the attribute |
| Get has buffer | `HasBuffer` | Whether attribute has a buffer |
| Set has buffer | `SetHasBuffer(hasBuffer)` | Set buffer flag |
| Get array bound | `UpperBoundDim1` | Upper bound of first dimension |
| Get set handlers | `RtSethandler` / `CfgSethandler` | Runtime/config set handlers |
### IAttributes Collection
| Property | Description |
|---|---|
| `Item[nameOrIndex]` | Get attribute by name or 1-based index |
| `Count` | Number of attributes |
| `ShortDescription` | Short description of the object |
| `ExecutionOrder` | Execution order name |
| `SecurityGroup` | Security group name |
| `ExecutionRelatedObject` | Execution related object name |
## Import / Export (IGalaxy — Pages 4344, 5255)
| Operation | Method | Description |
|---|---|---|
| Import objects | `ImportObjects(inputFile, overwritesAllowed)` | Import objects from file |
| Import objects (extended) | `ImportObjectsEx(inputFile, versionConflict, nameConflict, appendName)` | Import with conflict resolution |
| Import script library | `ImportScriptLib(path)` | Import a script library |
| Export all | `ExportAll(exportType, outputFile)` | Export all galaxy objects |
| GR Load | `GRLoad(csvFilePath, grLoadMode)` | Load galaxy from CSV file |
## Toolset Management (IToolset — Pages 207209, IToolsets — Pages 210213)
| Operation | Method | Description |
|---|---|---|
| Query toolsets | `galaxy.QueryToolsets()` | Get all toolsets |
| Query toolsets (extended) | `galaxy.QueryToolsetsEx(folderType)` | Get toolsets by folder type |
| Add toolset | `toolsets.Add(name)` | Add a new toolset |
| Add child toolset | `toolsets.AddToolSet(name, parentToolset)` | Add toolset under parent |
| Delete toolset | `toolsets.DeleteToolSet(name)` | Delete a toolset |
| Rename toolset | `toolset.Rename(newName)` | Rename a toolset |
| Move toolset | `toolset.MoveToToolset(newParent)` | Move to different parent |
| Get children | `toolset.GetChildToolsets()` | Get child toolsets |
## Script Library Management (IScriptLibrary — Pages 175177, IScriptLibraries — Pages 173175)
| Operation | Method | Description |
|---|---|---|
| Query script libraries | `galaxy.QueryScriptLibraries()` | Get all script libraries |
| Add script library | `scriptLibraries.Add(name)` | Add a new script library |
| Export script library | `scriptLibrary.Export(path)` | Export a script library to file |
| Get name | `scriptLibrary.Name` | Script library name |
## Security (IGalaxySecurity — Pages 5962)
| Operation | Method/Property | Description |
|---|---|---|
| Get security settings | `galaxy.GetSecuritySettings()` | Get IGalaxySecurity object |
| Get read-only security | `galaxy.GetReadOnlySecurity()` | Get security in read-only mode |
| Authentication mode | `security.AuthenticationMode` | Galaxy auth mode |
| Available roles | `security.RolesAvailable` | Collection of configured roles |
| Available users | `security.UsersAvailable` | Collection of configured users |
| Available security groups | `security.SecurityGroupsAvailable` | Collection of security groups |
| Login time | `security.LoginTime` | Configured login timeout |
| Role update interval | `security.RoleUpdateInterval` | Role update interval |
### Galaxy Roles (IGalaxyRole — Pages 5557, IGalaxyRoles — Pages 5759)
| Property | Description |
|---|---|
| `RoleName` | Role name |
| `AccessLevel` | Access level |
| `Permissions` | General permissions (IPermissions) |
| `OperationalPermissions` | Operational permissions (IPermissions) |
### Galaxy Users (IGalaxyUser — Pages 6264, IGalaxyUsers — Pages 6465)
| Property | Description |
|---|---|
| `UserName` | `domain\username` |
| `FullName` | `first last` |
| `AssociatedRoles` | Roles collection |
### Permissions (IPermission — Pages 167171, IPermissions — Pages 171172)
| Property | Description |
|---|---|
| `PermissionName` | Permission name |
| `PermissionParentName` | Parent permission name |
| `IsConfigured` | Whether permission is active |
| `HasChildren` | Whether it has child permissions |
| `ChildPermissions` | Child permissions collection |
| `IsSecurityGroup` | Whether it's a security group |
| `SecurityGroup` | Associated security group |
### Security Groups (ISecurityGroup — Pages 177178, ISecurityGroups — Pages 178179)
| Property | Description |
|---|---|
| `GroupName` | Security group name |
| `gObjects` | Objects in this security group |
## Settings (ISettings — Pages 180182)
| Operation | Method | Description |
|---|---|---|
| Get settings | `galaxy.GetLocaleSettings()` / `galaxy.GetTimeMasterSettings()` | Retrieve settings |
| Get instance | `settings.Instance` | Get the instance for configuring |
| Save & close | `settings.Close()` | Save and check in settings |
| Cancel | `settings.Cancel()` | Cancel without saving |
## User Defaults (IGalaxy — Pages 4547)
| Operation | Method | Description |
|---|---|---|
| Get user defaults | `GetUserDefaults(userDefault)` | Get logged-in user's defaults |
| Set user defaults | `SetUserDefaults(userDefault, value)` | Set user defaults |
## Error Checking (ICommandResult — Pages 2526, ICommandResults — Pages 2628)
| Property | Description |
|---|---|
| `Successful` | Whether the operation succeeded |
| `Text` | Description of the result code |
| `ID` | Result reason code (EGRCommandResult) |
| `CustomMessage` | Custom message |
| `CompletelySuccessful` | (ICommandResults) All results successful |
| `Count` | (ICommandResults) Number of results |
| `Item[index]` | (ICommandResults) Get result by index |
## Utility (IGalaxy — Pages 43, 5051)
| Operation | Method | Description |
|---|---|---|
| Create empty collection | `CreategObjectCollection()` | Create an empty IgObjects collection |
| Get CDI version | `CdiVersionString` | CDI version string |