Change and hand off an ontology
Distinguish supported model edits from recreate migrations, then hand analysts Cypher and engineers an exact output contract.
When operational data changes, review the ontology definition, loading pipelines, and consuming Cypher together. This final lesson separates edits that Portal supports in place from changes that require a recreated resource and a data migration.
Understand supported edits
A saved entity or relation exposes Overview, Attributes, Data, and History, but not every field remains editable.
| Change | Current Portal behavior | Impact to inspect |
|---|---|---|
| Alias, description, tags | Editable under Overview | Canvas labels and search context |
| New nullable attribute | Additive schema edit is supported | Code output and NULL on existing rows |
| Display Column | Read-only after creation | Graph node captions |
| System name | Read-only after creation | Recreate as a new resource |
| Remove or rename an attribute | Not supported in place | Migrate data and pipelines before recreating |
| Change type or nullability | Not supported in place | Transformation and data migration |
| Change Identity Keys | Not supported in place | Upsert identity and duplicate behavior |
| Change relation Source or Target | Read-only after creation | Create a correctly directed relation |
Unsupported schema edits show a message explaining that removing or renaming a column, changing its type or nullability, or changing Identity Keys is not supported. The same restriction applies to an empty resource, so verify names, keys, and types before creation.
Practice extending the model
Assume a new maintenance_events dataset arrives.
- In Modeling, create entity name
iot_maintenance_eventwith aliasMaintenance event. - Add
idas Text, NOT NULL and select it for Identity Keys and Display Column. - Add the
maintenance_eventsinput and a transform or Code node to a Batch pipeline. - Connect
iot_maintenance_eventas an Entity output with Upsert. - Create relation
iot_triggersfromiot_machinetoiot_maintenance_event. - Output these structural relation columns.
| Column | Meaning |
|---|---|
id | Stable unique relation-row ID |
iot_machine_id | Source iot_machine identity key id |
iot_maintenance_event_id | Target iot_maintenance_event identity key id |
- Confirm Ready and latest run Success for both pipelines.
- Verify each resource's Data tab and the result in Graph Explorer.
Saving a definition does not create data. Keep repeatable loading in pipelines.
Hand a result to an analyst
The selected collection and latest query are not continuously saved to the address bar. Share a reproducible bundle:
Collection: test1
Inspect: CNC machine connected to sensor_001
Expected result: 2 nodes, 1 relation
Query:
MATCH (s:`iot_sensor`)-[r:`iot_reads_from`]->(m:`iot_machine`)
WHERE s.id = 'sensor_001'
RETURN s, r, m
LIMIT 20
The analyst selects the same collection and pastes the Cypher into Query Console. Attach a screenshot when visual property confirmation matters.
Hand an output contract to an engineer
There is no collection README editor for a detailed contract. Keep purpose and owning team in the collection Description, and maintain the detailed contract in team documentation or code.
| Pipeline | Input key | Output key and resource | Required columns | Write mode |
|---|---|---|---|---|
load_iot_machines | machines | iot_machine Entity | id and entity attributes | Upsert |
load_iot_reads_from | sensor_machine_links | iot_reads_from Relation | id, iot_sensor_id, iot_machine_id, installed_at | Upsert |
| Maintenance event load | maintenance_events | iot_maintenance_event Entity | id and entity attributes | Upsert |
| Machine-event link load | Team-defined input key | iot_triggers Relation | id, iot_machine_id, iot_maintenance_event_id | Upsert |
Also record types, nullability, the Code run arguments, and returned keys. After a pipeline change, inspect both run success and the target Data tab.
Use the actual permission roles
Portal's resource roles are Owner, Editor, and Viewer in the UI. Their internal permission names are owner, writer, and reader.
- Modeler — Editor on ontology resources and loading pipelines they change
- Engineer — Editor on input datasets and loading pipelines, Viewer on ontology resources they inspect
- Analyst — Viewer on the collection and graph resources they query
- Permission administrator — Owner on collections whose membership and permissions they manage
Collection permission provides the basis for child-resource access. Grant only the minimum role required, and add a higher direct role only on a specific child when responsibility requires it.
Record the change
Use History on an entity or relation for its resource history. Also record intent, affected pipelines, verification Cypher, and rollback procedure in the team's change-management tool. Sidebar Recents is not a security audit log.
Course completion check
- Entities and relations use valid lowercase system names.
- Identity Keys and Display Column are configured.
- Entity and Relation rows were Upserted through real Batch pipelines.
- Results were verified in Data and Graph Explorer.
- Additive edits are distinguished from recreate migrations.
- Analysts and engineers can receive a reproducible contract.
You can now define a model, load its data, verify its graph, and hand off changes as one workflow.