Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • A api
  • Project information
    • Project information
    • Activity
    • Members
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
Collapse sidebar
  • ironapi
  • api
  • Wiki
  • Deprecated
  • Auto Ident

Auto Ident · Changes

Page history
update authored May 25, 2021 by Andrea Pavlovic's avatar Andrea Pavlovic
Hide whitespace changes
Inline Side-by-side
Deprecated/Auto-Ident.md 0 → 100644
View page @ c2b47ae8
**THIS FEATURE IS DEPRICATED AND WILL BE REPLACED. PLEASE DO NOT USE**
TOC
[TOC]
For an instance, an automatic identifier can be built. It is presented as an attribute in the universe and called "auto_ident". It is, in fact, not a real column, but a computed value.
While it can be used in search queries, it should not replace the id attribute for selecting a single id. It is meant as a more human readable identifier for an instance and should be used as the default value for an instance. E.g. When displaying any instance, instead of showning their instance state as "1", the auto_ident of that state "existing/extensions/file" should be used.
# definition in universe
Auto Idents are only available if there are unique human readable attributes defined for the instance.
In that case, they are added to the universe - the "auto_ident" key is added to the entity definition with information on how the auto_ident is build and an attibute is added to the "attributes" list:
```JSON
{
"entities": {
"ticket": {
...
"attributes": {
"auto_ident": {
"displayOrder": -1,
"required": false,
"dataType": "text",
"description": "auto generated identifier of the instance",
"isReference": false,
"name": "auto_ident",
"isSystemAttribute": false,
"label": "auto_ident"
}
...
},
"auto_ident": {
"concat": "concat_ws('/',me.subject)",
"columns": [
"me.subject"
],
"join": []
}
}
}
}
```
# using auto_ident
To find out if auto_idents are turned on by default, refer to the universe under apiSettings/autoIdentDepthDefault:
```JSON
{
"apiSettings": {
"maxPageSize": "1000",
"version": "1.0",
"autoIdentDepthDefault": 2,
"isHugeLimit": 100,
}
}
```
To change the behaviour, "auto_ident_depth" can be set for any given query.
The "auto_ident" column cannot be used in the "select" part of the attributes and it is only available for the current entity and those entities joined directly to it. Any deeper references can not return their auto_ident.
## auto_ident_depth = 0
To get just the instances, without any identifiers, set auto_ident_depth=0:
```JSON
#/data/system/entity/query
#{"auto_ident_depth":0}
{
"data": [
{
"id": 1,
"is_functional": 0,
"modifying_client": 1,
"module": 2,
"modifying_action": 5,
"instance_entity": 3,
"label": "data_type",
"is_translatable": 1,
"name": "data_type",
"description": "type of data",
"modification_time": "2018-11-08 11:55:48.173711",
"is_successor_not_required": 0,
"successor": null
}
]
}
```
## auto_ident_depth = 1
To get the auto_ident of the instances from just the main entity, set auto_ident_depth to 1:
```JSON
#/data/system/entity/query
#{"auto_ident_depth":1}
{
"data": [
{
"id": 1,
"auto_ident": "constant/data_type",
"is_successor_not_required": 0,
"modification_time": "2018-11-08 11:55:48.173711",
"successor": null,
"module": 2,
"modifying_client": 1,
"is_functional": 0,
"label": "data_type",
"is_translatable": 1,
"description": "type of data",
"name": "data_type",
"modifying_action": 5,
"instance_entity": 3
}
]
}
```
## auto_ident_depth = 2
To have related first level instances joined and id and auto_ident returned:
```JSON
#/data/system/entity/query
#{"auto_ident_depth":2}
{
"data": [
{
"id": 1,
"auto_ident": "constant/data_type",
"modification_time": "2018-11-08 11:55:48.173711",
"is_successor_not_required": 0,
"name": "data_type",
"description": "type of data",
"label": "data_type",
"is_translatable": 1,
"is_functional": 0,
"successor": {
"id": null,
"auto_ident": "constant"
},
"instance_entity": {
"auto_ident": "constant/entity",
"id": 3
},
"modifying_action": {
"auto_ident": "create/constant/entity",
"id": 5
},
"modifying_client": {
"auto_ident": "root",
"id": 1
},
"module": {
"id": 2,
"auto_ident": "constant"
}
}
]
}
```
# merging with other query parameters
Query parameters (join/prefetch/select etc) will be merged with pre-defined ones to
build the auto_ident column. Refer to
https://metacpan.org/pod/DBIx::Class::ResultSet#Resolving-conditions-and-attributes on details
of how this is done.
# sort and search auto_ident
It can be used to sort and search, e.g. based on `/data/system/entity/query` these
queries will work:
`{"attrs" : {"order_by" : "me.auto_ident"}, "auto_ident_depth" : 1 }`
`{"attrs" : {"order_by" : "module.auto_ident"}, "auto_ident_depth": 2 }`
`{"conds" : {"me.auto_ident" : {"-like" : "%system%"}}, "auto_ident_depth": 1}`
Clone repository
  • API
    • Available Endpoints
    • Changing Passwords
    • Form Input Types
    • Introduction
    • Logout
    • Plugins
    • Queries
    • Queries
      • Attributes
      • Context
      • Query Examples
      • Query Search Options
      • Referenced Instances
      • Saved Queries
    • Schema_Changes
    • Storing Files
View All Pages