Skip to content

Bootstrap — drafting a model from the tag tree

The editor's Draft from tags card (also system.artekis.contextModel.bootstrap and POST /data/artekis/web/context-model/bootstrap) drafts assets from what the gateway holds under up to 20 root paths, from four sources: UDT definitions and instances (udt), the folder tree (folders), alarm configuration (alarms) and historian registration (history). A root can also name an asset tree held in a database: query:<Project>/<Path/To/Query> names a select named query with no parameter, in a project read.projects allows, whose every column is a level of the tree, top first (an ISA-95 table's enterprise, site, area, line, cell); each row is one path, ending at its first blank cell. Each level becomes an asset of the column's name as its type, a child of the level above, its id the slug of the names down to it, so a re-run maps to the same ids; these assets carry no tags (add tag roots to the same draft, or add tags in the editor). A query outside the policy, with a parameter, or that fails is skipped with a warning. A UDT instance becomes an asset of its UDT type, a nested instance its child; a folder holding assets or loose tags becomes a parent asset of type area; a tag's unit is its engUnit and its limits come from its setpoint alarms; setpoint roles and normal ranges are never drafted. Asset ids are slugs of the tag path, so a re-run maps to the same ids. At most 20,000 tags are scanned and 500 assets proposed; past either the draft says truncated — narrow the roots. A draft of 19,400 tags into 242 assets took 3.1 s.

  • A draft is never stored. Leaving the page drops it. Review it asset by asset (or accept all high-confidence ones), press Add accepted to model — which changes only the working copy — and then Save, which is one write of the whole model. An accepted asset whose parent was not accepted is saved at the top level.
  • A re-run only adds. It never changes a saved asset's name, parent or tags; an asset, tag or alarm already in the model is not proposed again, and a saved asset that would gain tags or alarms is proposed with only those.
  • Suggest (the switch on the card) adds one writer-role model call that proposes readable names, groupings for loose tags and relations, each marked as the model's. It needs an active provider; it sends tag paths, names, types and units, never a value or a setpoint; it is recorded like a run and appears in Cost and Egress. It lists at most 200 tags per asset, in draft order, and tells the writer how many it left out; a prompt over the model's input ceiling is refused before any call. The press waits for the answer (up to the writer's call timeout).