Skip to content

Commit 96c5332

Browse files
ftopictilenkavcicshalomgkAvinashSingh10-1Atul-Butola
authored
docs: ISS-179977, Add documentation for mapping custom objects and custom links (#254)
* Update IDM docs * Update supported object types * Add fallback description * Add documentation for mapping custom objects and custom links * Comments * frontend user-identity method (#232) * Update user-identity.mdx * Update user-identity.mdx Add beta message with limitations * changed the position of note (#243) * adding a note * Update ue-migration.mdx --------- Co-authored-by: Atul-Butola <[email protected]> * chore: Update OpenAPI specs (#245) * Point to customization API docs from identity SDK docs (#246) * chore: Include 'Bearer' in authorization header documentation (#247) * Document `unit` and `is_read_only` customization UI hints (#248) - Use imperative tense in headings. This has been done in the custom objects documentation. - Use smaller image for group_name UI hint. * style rules for marketplace (#214) * some minor updates and organization * MP style and sample * corrected LLM token var name * prohibited * check responses better --------- Co-authored-by: Atul-Butola <[email protected]> * add instructions for local instance (#171) * add instructions for local instance * use yarn --------- Co-authored-by: Atul-Butola <[email protected]> * Update supported objects for Airdrop (#250) * Update supported objects for Airdrop * Update supported-object-types.mdx * Update supported-object-types.mdx * Update supported-object-types.mdx * Update ekline.yml (#249) ISS-180063 Co-authored-by: Atul-Butola <[email protected]> * Cross-domain session tracking link (#252) * Cross-domain session tracking link * Update fern/docs/pages/sdks/web/methods.mdx --------- Co-authored-by: Atul-Butola <[email protected]> * Minor Airdrop fixes (#253) * docs: Add fallback docs (#241) * Update IDM docs * Update supported object types * Add fallback description * Address comments * Don't capitalize titles in supported object types * Add hint for integrating DevRev documentation into MCP server * Introduce Chef UI, better explain fallbacks * Update fern/docs/pages/airdrop/initial-domain-mapping.mdx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Nits * Address comments * frontend user-identity method (#232) * Update user-identity.mdx * Update user-identity.mdx Add beta message with limitations * changed the position of note (#243) * adding a note * Update ue-migration.mdx --------- Co-authored-by: Atul-Butola <[email protected]> * chore: Update OpenAPI specs (#245) * Point to customization API docs from identity SDK docs (#246) * chore: Include 'Bearer' in authorization header documentation (#247) * Document `unit` and `is_read_only` customization UI hints (#248) - Use imperative tense in headings. This has been done in the custom objects documentation. - Use smaller image for group_name UI hint. * style rules for marketplace (#214) * some minor updates and organization * MP style and sample * corrected LLM token var name * prohibited * check responses better --------- Co-authored-by: Atul-Butola <[email protected]> * add instructions for local instance (#171) * add instructions for local instance * use yarn --------- Co-authored-by: Atul-Butola <[email protected]> * Update supported objects for Airdrop (#250) * Update supported objects for Airdrop * Update supported-object-types.mdx * Update supported-object-types.mdx * Update supported-object-types.mdx --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: shalomgk <[email protected]> Co-authored-by: Avinash Singh <[email protected]> Co-authored-by: Atul-Butola <[email protected]> Co-authored-by: Brian Byrne <[email protected]> Co-authored-by: Shivansh Rai <[email protected]> Co-authored-by: Ben Colborn <[email protected]> Co-authored-by: Arturo Aparicio <[email protected]> * Fix merge * Readd custom object documentation * remove metadata version mentions * Update fern/docs/pages/airdrop/metadata-extraction.mdx Co-authored-by: Ben Colborn <[email protected]> --------- Co-authored-by: Tilen Kavčič <[email protected]> Co-authored-by: shalomgk <[email protected]> Co-authored-by: Avinash Singh <[email protected]> Co-authored-by: Atul-Butola <[email protected]> Co-authored-by: Brian Byrne <[email protected]> Co-authored-by: Shivansh Rai <[email protected]> Co-authored-by: Ben Colborn <[email protected]> Co-authored-by: Arturo Aparicio <[email protected]> Co-authored-by: Patricija Brečko <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 89d90bd commit 96c5332

File tree

3 files changed

+75
-4
lines changed

3 files changed

+75
-4
lines changed

fern/docs/pages/airdrop/initial-domain-mapping.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ Use the Chef UI to map record types and fields.
115115
The UI displays the external record types you defined in external domain metadata and allows you to map them to DevRev objects.
116116
Map one record type at a time, ensuring you map all required fields and as many optional fields as possible.
117117

118+
#### Mapping as custom object
119+
The system allows importing record types and categories as custom objects. To achieve this you have to select `new_custom_object` when mapping the record type. For each external record type mapped as a custom object, a new custom **Leaf type** will be defined in DevRev and a **Subtype** will automatically be created. For more details on customization concepts, please refer to the
120+
[Customization](../customization.mdx) and [Custom Objects](../custom-objects.mdx) documentation.
121+
122+
The field mapping works the same as for the stock DevRev types, with the difference being that there are significantly fewer fields to map. All the unmapped fields of the external record type will be created as custom fields.
123+
118124
### Specify fallback mappings
119125

120126
For some required DevRev fields a fallback is required.
@@ -151,6 +157,13 @@ This enables:
151157
- Raw jq transformations using external fields as input (experimental)
152158
- Example input data for testing transformations
153159

160+
<Warning>
161+
The local metadata file is not validated against the snap-in submission.
162+
</Warning>
163+
This enables:
164+
- Raw jq transformations using external fields as input (experimental)
165+
- Example input data for testing transformations
166+
154167
<Warning>
155168
The local metadata file is not validated against the snap-in submission.
156169
</Warning>

fern/docs/pages/airdrop/metadata-extraction.mdx

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,63 @@ be changed by the end user at any time, such as mandatory fields or custom field
504504
- If a status field has no explicit transitions but you still want a stage diagram, set `all_transitions_allowed` to `true`, which creates a diagram where all the defined stages can transition to each other.
505505
- External systems may categorize statuses (like Jira's status categories), which can be included in the diagram metadata (`states` in the example).
506506
- The `starting_stage` defines the initial stage for new object instances. This data should always be provided if available, otherwise the starting stage is selected alphabetically.
507-
- In current metadata format (v0.2.0), the order and human-readable name are taken from the enum values defined on the controlling field.
507+
- The order and human-readable name are taken from the enum values defined on the controlling field.
508508
- If the `states` field is not provided, default DevRev states are used: `open`, `in_progress`, and `closed`.
509+
510+
### Declare custom link types
511+
512+
External record types that represent links between other record types can be imported as ***custom links***, which means that each declared link type will be recreated in DevRev with the same names. This allows closer preservation of the original data without the need to map the links to DevRev's predefined link types.
513+
514+
To achieve this, the external record type needs to have an enum field defined that represents the link types and you need to declare a special field called `link_naming_data` in the record type.
515+
516+
```json
517+
{
518+
"fields": {
519+
"type": {
520+
"name": "Link Type",
521+
"is_required": true,
522+
"type": "enum",
523+
"enum": {
524+
"values": [
525+
{
526+
"key": "1",
527+
"name": "Parent Of"
528+
},
529+
{
530+
"key": "2",
531+
"name": "Related"
532+
},
533+
{
534+
"key": "3",
535+
"name": "Blocks"
536+
}
537+
]
538+
}
539+
}
540+
},
541+
"link_naming_data": {
542+
"link_type_field": "type",
543+
"link_direction_names": {
544+
"1": {
545+
"forward_name": "Parent of",
546+
"backward_name": "Child of"
547+
},
548+
"2": {
549+
"forward_name": "Relates To",
550+
"backward_name": "Relates To"
551+
},
552+
"3": {
553+
"forward_name": "Blocks",
554+
"backward_name": "Is Blocked By"
555+
}
556+
}
557+
}
558+
}
559+
```
560+
561+
In the above example:
562+
- The external *type* field is declared as the `link_type_field`.
563+
- The `link_direction_names` provide a mapping of each value in the `link_type_field` to their directional names. `forward_name` and `backward_name` can be the same, but both are required.
564+
- The human-readable name of the link type is taken from the enum values defined on the `link_type_field`. The linkable object types in DevRev are defined based on the mappings of the `source_id` and `target_id` [fields](./supported-object-types.mdx#custom_link#).
565+
509566
</Steps>

fern/docs/pages/airdrop/supported-object-types.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# Supported DevRev object types for Airdrop
22

3-
Last updated: _June 5, 2025_
3+
Last updated: _June 11, 2025_
44

55
This document contains the list of all DevRev object types that are supported for Airdrop.
66

77
## Summary
88

99
| Object Type | Object Hierarchy | Loading | Extraction | Subtype | AppFragment | Comment |
1010
|-------|-------------|:-------:|:----------:|:-------:|:----------:|-------------|
11-
| [A new custom object type](#a-new-custom-object-type) | custom_object | ✔︎ | ✔︎ | ✔︎ | | |
11+
| [new_custom_object](#new_custom_object) | custom_object | ✔︎ | ✔︎ | ✔︎ | | _New custom object is an example of how custom objects look in the context of Airdrop mapping._ |
1212
| [account](#account) | account | ✔︎ | | | | |
1313
| [airdrop_authorization_policy](#airdrop_authorization_policy) | airdrop_authorization_policy | ✔︎ | | | | _Airdrop authorization policy object type is the intermediate object type for creating MFZ object types: role, role_set, object_member, and access_control_entry._ |
1414
| [airdrop_platform_group](#airdrop_platform_group) | airdrop_platform_group | ✔︎ | | | | _Airdrop platform group object type is the representation of the default DevRev groups._ |
@@ -51,7 +51,7 @@ This document contains the list of all DevRev object types that are supported fo
5151
| Can Subtype | Indicates that the object type supports [subtype](https://developer.devrev.ai/beta/guides/object-customization#subtype) creation. |
5252
| Can App Fragment | Indicates that the object type supports application fragments. |
5353

54-
## A new custom object type
54+
## new_custom_object
5555

5656
**Resource Type:** `custom_object`
5757

@@ -1650,3 +1650,4 @@ This document contains the list of all DevRev object types that are supported fo
16501650

16511651
[ ▲ top](#summary)
16521652

1653+
---

0 commit comments

Comments
 (0)