Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/api/event_reference/collaboration_events.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
---
description: Events that are triggered when working with collaborative editing feature.
page_type: reference
editions:
- lts-update
month_change: true
---

# Collaboration events

You can use the following events to extend the [collaborative editing](collaborative_editing.md) feature:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: feature or LTS update aa it is for 4.6?

Also, for the consistency:

Suggested change
You can use the following events to extend the [collaborative editing](collaborative_editing.md) feature:
You can use the following events to extend the [Collaborative editing](collaborative_editing.md) feature:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You can use the following events to extend the [collaborative editing](collaborative_editing.md) feature:
You can use the following events to extend the [Collaborative editing LTS Update](collaborative_editing.md):

Let's go with LTS update (I will change that when merging to 5.0)


## Invitation events

| Event | Dispatched by |
Expand Down Expand Up @@ -41,3 +45,10 @@
|[LeaveSessionEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-Session-Event-LeaveSessionEvent.html)|`SessionLeaveController::leaveAction()`|
|[UpdateSessionEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-Session-Event-UpdateSessionEvent.html)|[SessionService::updateSession()](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-SessionServiceInterface.html#method_updateSession)|
|[SessionPublicPreviewEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-Session-Event-SessionPublicPreviewEvent.html)|`SessionPublicPreviewController::previewAction()`|

## User filtering events

| Event | Dispatched by | Description |
|---|---|---|
|<nobr>[`UsersWithPermissionInfoMappedEvent`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Share-Event-UsersWithPermissionInfoMappedEvent.html)</nobr>|`Ibexa\Share\Permission\Mapper\`<br>`UsersWithPermissionInfoMapper` | Allows further filtering of users with permissions for collaborative editing |

Check failure on line 53 in docs/api/event_reference/collaboration_events.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/api/event_reference/collaboration_events.md#L53

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/api/event_reference/collaboration_events.md", "range": {"start": {"line": 53, "column": 86}}}, "severity": "ERROR"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
|<nobr>[`UsersWithPermissionInfoMappedEvent`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Share-Event-UsersWithPermissionInfoMappedEvent.html)</nobr>|`Ibexa\Share\Permission\Mapper\`<br>`UsersWithPermissionInfoMapper` | Allows further filtering of users with permissions for collaborative editing |
|<nobr>[`UsersWithPermissionInfoMappedEvent`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Share-Event-UsersWithPermissionInfoMappedEvent.html)</nobr>|`Ibexa\Share\Permission\Mapper\`<br>`UsersWithPermissionInfoMapper` | Allows further filtering of users with permissions for Collaborative editing |


Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,22 @@ Real-time collaboration syncs changes instantly and shows user avatars and color

This feature also introduces new dashboard tabs for managing shared drafts and joining collaboration sessions easily.

## Getting Started
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Getting Started
## Getting started


[[= cards([
"content_management/collaborative_editing/collaborative_editing_guide",
"content_management/collaborative_editing/install_collaborative_editing",
"content_management/collaborative_editing/collaborative_editing_api"
], columns=3) =]]
("permissions/policies#collaborative-editing", "Policies", "Learn about the available Collaborative editing policies"),
("https://doc.ibexa.co/projects/userguide/en/4.6/content_management/collaborative_editing/"),
], columns=2) =]]

## Development

[[= cards([
"content_management/collaborative_editing/collaborative_editing_api",
"api/event_reference/collaboration_events",
("https://doc.ibexa.co/en/4.6/api/rest_api/rest_api_reference/rest_api_reference.html#collaborative-editing", "REST API Reference", "See the available endpoints for Collaborative editing"),
"search/collaboration_search_reference/collaboration_criteria",
"search/collaboration_search_reference/collaboration_sort_clauses",
], columns=4) =]]

Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ You can find an existing session with [`SessionService::findSessions()`](/api/ph
[[= include_file('code_samples/collaboration/src/Command/ManageSessionsCommand.php', 86, 89) =]]
```

To learn more about the available search options, see [Search Criteria](collaboration_criteria.md) and [Sort Clauses](collaboration_sort_clauses.md) for Collaborative editing.

### Update session

You can update existing invitation with [`SessionService::updateSession()`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-SessionServiceInterface.html#method_updateSession):
Expand Down Expand Up @@ -157,7 +159,7 @@ You can delete an invitation with [`InvitationService::deleteInvitation()`](/api

You can find an invitation with [`InvitationService::findInvitations()`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-InvitationServiceInterface.html#method_findInvitations).

To learn more about the available search options, see Search Criteria and Sort Clauses for Collaborative editing.
To learn more about the available search options, see [Search Criteria](collaboration_criteria.md) and [Sort Clauses](collaboration_sort_clauses.md) for Collaborative editing.

## Example API usage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The system automatically tracks changes, allowing seamless collaboration within

Collaborative editing is an opt-in available as an LTS update starting with the v4.6.24 in all [[= product_name =]] editions.
To start using Collaborative editing, you must first install the required packages and perform initial configuration.
To use Real-time editing feature, you must make arrangements with [[= product_name_base =]], and accept Terms & Conditions and Service Level Agreement in the Support Portal.
To use Real-time editing feature, you must make arrangements with [[= product_name_base =]], and accept Terms & Conditions and Service Level Agreement in the Service Portal.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To use Real-time editing feature, you must make arrangements with [[= product_name_base =]], and accept Terms & Conditions and Service Level Agreement in the Service Portal.
To use Real-time editing feature, you must make arrangements with [[= product_name_base =]], and accept Terms and Conditions and Service Level Agreement in the Service Portal.


## Prerequisites

Expand Down Expand Up @@ -51,13 +51,17 @@ Collaboration session begins when first invited user accepts the invitation and

To start collaborative editing, you need to invite collaborators using the **Share** button.

You can invite other users to join the session, both internal and external:
The owner of the draft can invite other users to join the session, both internal and external:

- **Internal** - by searching their name or email address. These users can either edit the content item or preview it, depending on your choice.
- **External** - by providing their email address in the field. They can only preview the content item.

Once they accept the invitation, they are able to join you in editing content item or reviewing it.

Once the invitation is accepted, internal users can invite further users if their permissions allow for it.
To do so, they must be a part of an active collaboration session.
Gaining access to the draft through other means, for example by [workflow](workflow.md), doesn't allow inviting other users.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'means' can have two meanings, so maybe it's better to change wording here:

Suggested change
Gaining access to the draft through other means, for example by [workflow](workflow.md), doesn't allow inviting other users.
Gaining access to the draft through other methods, for example by [workflow](workflow.md), doesn't allow to invite other users.


![Collaborative editing - invitation](img/collaboration_invitation.png)

You can change the users access or remove it at any time.
Expand Down Expand Up @@ -92,7 +96,6 @@ Collaboration is available for the following content types with Rich Text fields
- Article
- Folder
- Form
- Product category
- Custom content types

All changes made by collaborators are automatically saved when owner publishes or saves content.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,60 @@

The following setting is available:

- `content_type_groups` – defines groups of content types for which the **Share** button is displayed (it can still be disabled for specific content types within these groups)
- `content_type_groups` – defines groups of content types for which the **Share** button is displayed (it can still be disabled for specific content types within these groups by using the `excluded_content_types` setting)

In the example confugiration above, the **Share** button is displayed for any content that belongs to the `Content` group, except for `tag` and `product_category_tag` content types.
In the example configuration above, the **Share** button is displayed for any content that belongs to the `Content` group, except for `tag` and `product_category_tag` content types.

You can also control which user content types can use the feature by using the `ibexa.share.permission_check_context.content.user_content_type_identifiers` container parameter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid "can use" +"by using"

Suggested change
You can also control which user content types can use the feature by using the `ibexa.share.permission_check_context.content.user_content_type_identifiers` container parameter.
You can also control which user content types can use the feature through the `ibexa.share.permission_check_context.content.user_content_type_identifiers` container parameter.

It accepts an array of content type identifiers and the default value is `['editor']`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need all of the symbols `[' ?

Suggested change
It accepts an array of content type identifiers and the default value is `['editor']`.
It accepts an array of content type identifiers and the default value is `['editor']`.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd keep it, it indicates that the default value is an array.

editor would mean that the default value is a string.


You can now restart you application and start [working with the Collaborative editing feature]([[= user_doc =]]/content_management/collaborative_editing/work_with_collaborative_editing/).
To add the real-time editing capabilities, continue with the instruction below.

## Configure real-time editing

You must have an arrangment with Ibexa before configuring the real-time editing.

Check failure on line 181 in docs/content_management/collaborative_editing/install_collaborative_editing.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/collaborative_editing/install_collaborative_editing.md#L181

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/content_management/collaborative_editing/install_collaborative_editing.md", "range": {"start": {"line": 181, "column": 34}}}, "severity": "ERROR"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As suggested also by vale:

Suggested change
You must have an arrangment with Ibexa before configuring the real-time editing.
You must have an arrangment with [[= product_name_base =]] before configuring the real-time editing.

If you haven't already, you must also accept the Terms of Service in the [Service portal](https://support.ibexa.co/).

Only then you can create a new collaborative editing environment.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Only then you can create a new collaborative editing environment.
Only then you can create a new Collaborative editing environment.

To do it, go to your Service Portal and select **Create environment** (this requires the **Portal administrator** access level).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Your' sounds weird here:

Suggested change
To do it, go to your Service Portal and select **Create environment** (this requires the **Portal administrator** access level).
To do it, go to the Service Portal and select **Create environment** (this requires the **Portal administrator** access level).


With the environment created, you can continue the configuration in [[= product_name =]].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
With the environment created, you can continue the configuration in [[= product_name =]].
Once the environment is created, you can proceed with the configuration in [[= product_name =]].


Use the generated values to set the `environment_id`, `environment_secret`, and `web_socket_url` for your [repositories](repository_configuration.md) as in the example below:

``` yaml
ibexa:
repositories:
default:
fieldtype_richtext_rte:
environment_id: '%env(CKEDITOR_ENVIRONMENT_ID)%'
environment_secret: '%env(CKEDITOR_ENVIRONMENT_SECRET)%'
web_socket_url: '%env(CKEDITOR_WEB_SOCKET_URL)%'
```

Then, enable real-time editing for specific [SiteAccesses](siteaccess.md).

Check failure on line 201 in docs/content_management/collaborative_editing/install_collaborative_editing.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/collaborative_editing/install_collaborative_editing.md#L201

[Ibexa.DomainTermCapitalization] Use 'SiteAccess' instead of 'siteaccess'
Raw output
{"message": "[Ibexa.DomainTermCapitalization] Use 'SiteAccess' instead of 'siteaccess'", "location": {"path": "docs/content_management/collaborative_editing/install_collaborative_editing.md", "range": {"start": {"line": 201, "column": 60}}}, "severity": "ERROR"}
The following example enables it for the back office:

``` yaml
ibexa:
system:
admin_group:
fieldtype_richtext_rte:
enabled: true
```

Finish the configuration by running:

``` bash
composer run post-install-cmd
```

## Accepting new Terms of Service

Real-Time Collaboration service is only available after accepting its Terms and Conditions.
When Ibexa releases a new version of this document, the new version must be accepted before the appointed deadline.

Check failure on line 221 in docs/content_management/collaborative_editing/install_collaborative_editing.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/collaborative_editing/install_collaborative_editing.md#L221

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/content_management/collaborative_editing/install_collaborative_editing.md", "range": {"start": {"line": 221, "column": 6}}}, "severity": "ERROR"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When Ibexa releases a new version of this document, the new version must be accepted before the appointed deadline.
Any new version of this document released by [[= product_name_base =]] must be accepted before the assigned deadline.


The **Portal administrator** for your [Service portal](https://support.ibexa.co) can accept it in Service portal's service details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The **Portal administrator** for your [Service portal](https://support.ibexa.co) can accept it in Service portal's service details.
The **Portal administrator** for the [Service portal](https://support.ibexa.co) can accept it in Service portal's service details.


If not done in time, the Real-Time Collaboration service will be disabled until the latest Terms and Conditions are accepted.

Check warning on line 225 in docs/content_management/collaborative_editing/install_collaborative_editing.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/collaborative_editing/install_collaborative_editing.md#L225

[Ibexa.FutureTense] Use present tense instead of future.
Raw output
{"message": "[Ibexa.FutureTense] Use present tense instead of future.", "location": {"path": "docs/content_management/collaborative_editing/install_collaborative_editing.md", "range": {"start": {"line": 225, "column": 58}}}, "severity": "WARNING"}
40 changes: 40 additions & 0 deletions docs/permissions/limitation_reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,46 @@
|------|------|------|
|`1`|"Forbid"|The user cannot change owner of a content item|

## Collaborative editing limitations [[% include 'snippets/lts-update_badge.md' %]]

The collaborative editing limitations specify how the user can use the [collaborative editing](collaborative_editing.md) feature.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, same as in the comment above - feature vs LTS update:

Suggested change
The collaborative editing limitations specify how the user can use the [collaborative editing](collaborative_editing.md) feature.
The Collaborative editing limitations specify how the user can use the [Collaborative editing](collaborative_editing.md) feature.


### Collaborative editing Owner limitation

The Owner limitation specifies whose drafts the user can share.
If not specified, user can share:

- his drafts

Check failure on line 75 in docs/permissions/limitation_reference.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/permissions/limitation_reference.md#L75

[Ibexa.Gender] Use they/their instead of 'his'.
Raw output
{"message": "[Ibexa.Gender] Use they/their instead of 'his'.", "location": {"path": "docs/permissions/limitation_reference.md", "range": {"start": {"line": 75, "column": 3}}}, "severity": "ERROR"}
- drafts they have been invited to collaborate on

#### Possible values

|Value|UI value|Description|
|------|------|------|
|"self"|"self"| User can only share drafts that they own |

### Collaborative editing Scope limitation

The Scope limitation specifies whether the user can share the preview and editing view with other users.

#### Possible values

|Value|UI value|Description|
|------|------|------|
|"edit"|"Edit"| User can invite other users to edit|
|"view"|"View"| User can share the preview with other users|

### Collaborative editing PublicLink limitation

The Public Link (`PublicLink`) limitation specifies whether the user can manage the settings of the shareable preview link.

#### Possible values

|Value|UI value|Description|
|------|------|------|
|"Off"|"off"| User can't manage the settings|
|"On"|"on"| User can manage the settings|

## Discount Owner limitation [[% include 'snippets/lts-update_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]]

The Discount Owner (`DiscountOwner`) limitation specifies whether the user can interact with a [discount](discounts.md).
Expand Down
2 changes: 2 additions & 0 deletions docs/permissions/permission_use_cases.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ For example, to enable the user to edit only content in the "Design" stage and t
- `content/edit` with `WorkflowStageLimitation` set to "Design".
- `workflow/change_stage` with `WorkflowTransitionLimitation` set to `to_proofreading`

When using the [Collaborative editing LTS Update](collaborative_editing.md), see the [collaborative editing policies](policies.md#content-collaborative-editing) for collaborative editing without defining a strict workflow.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence sounds a bit unclear, maybe something like:

Suggested change
When using the [Collaborative editing LTS Update](collaborative_editing.md), see the [collaborative editing policies](policies.md#content-collaborative-editing) for collaborative editing without defining a strict workflow.
When using the [Collaborative editing LTS Update](collaborative_editing.md), refer to the [collaborative editing policies](policies.md#content-collaborative-editing) for guidance on editing without a strict workflow.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When using the [Collaborative editing LTS Update](collaborative_editing.md), see the [collaborative editing policies](policies.md#content-collaborative-editing) for collaborative editing without defining a strict workflow.
When using the [Collaborative editing LTS Update](collaborative_editing.md), see the [Collaborative editing policies](policies.md#content-collaborative-editing) for collaborative editing without defining a strict workflow.


## Multi-file upload

Creating content through multi-file upload is treated in the same way as regular creation.
Expand Down
14 changes: 14 additions & 0 deletions docs/permissions/policies.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,14 @@ The discount policies decide which actions can be executed by given user or user
| | <nobr>`versionremove`</nobr> | remove archived content versions | [Content type](limitation_reference.md#content-type-limitation)</br>[Section](limitation_reference.md#section-limitation)</br>[Owner](limitation_reference.md#owner-limitation)</br>Status</br>[Location](limitation_reference.md#location-limitation)</br>[Subtree](limitation_reference.md#subtree-limitation)</br>[Object State](limitation_reference.md#object-state-limitation) |
| | <nobr>`view_embed`</nobr> | view content embedded in another content item (even when the User isn't allowed to view it as an individual content item) | [Content type](limitation_reference.md#content-type-limitation)</br>[Section](limitation_reference.md#section-limitation)</br>[Owner](limitation_reference.md#owner-limitation)</br>[Location](limitation_reference.md#location-limitation)</br>[Subtree](limitation_reference.md#subtree-limitation) |

#### Content collaborative editing [[% include 'snippets/lts-update_badge.md' %]]

| Module | Function | Effect | Possible limitations |
|----------------------|-----------------------|--------------------------------------------------------------------------|----------------------|
| <nobr>`content`</nobr> | <nobr>`share`</nobr> | share content drafts with internal and external users through [collaborative editing](collaborative_editing.md) |[Owner](limitation_reference.md#collaborative-editing-owner-limitation)</br>[PublicLink](limitation_reference.md#collaborative-editing-publiclink-limitation)</br>[Scope](limitation_reference.md#collaborative-editing-scope-limitation)
| <nobr>`rte`</nobr> | <nobr>`edit`</nobr> | use [Real-time editing](collaborative_editing_guide.md#real-time-editing) |


#### Content types

| Module | Function | Effect | Possible limitations |
Expand Down Expand Up @@ -292,6 +300,12 @@ The discount policies decide which actions can be executed by given user or user
| | <nobr>`edit`</nobr> | edit a product | [Product Type](limitation_reference.md#product-type-limitation)</br>[Language](limitation_reference.md#language-limitation) |
| | <nobr>`view`</nobr> | view products listed in the product catalog | [Product Type](limitation_reference.md#product-type-limitation) |

#### Product collaborative editing [[% include 'snippets/lts-update_badge.md' %]]

| Module | Function | Effect | Possible limitations |
|----------------------|-----------------------|--------------------------------------------------------------------------|----------------------|
| <nobr>`product`</nobr> | <nobr>`share`</nobr> | share products with internal and external users through [collaborative editing](collaborative_editing.md) |[Owner](limitation_reference.md#collaborative-editing-owner-limitation)</br>[PublicLink](limitation_reference.md#collaborative-editing-publiclink-limitation)</br>[Scope](limitation_reference.md#collaborative-editing-scope-limitation) |

#### Product types

| Module | Function | Effect | Possible limitations |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
---
month_change: true
description: Search Criteria available for Collaboration search
editions:
- lts-update
---

# Collaboration Search Criterion reference

Search Criteria are found in the `Ibexa\Contracts\Collaboration\Invitation\Query\Criterion` namespace.
Use them to work with objects related to [collaborative editing API](collaborative_editing_api.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Use them to work with objects related to [collaborative editing API](collaborative_editing_api.md).
Use them to work with objects related to [Collaborative editing API](collaborative_editing_api.md).


## Invitation Search Criteria

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
---
month_change: true
description: Sort Clauses available for Collaboration search
editions:
- lts-update
---

# Collaboration Search Sort Clauses reference

Sort Clauses are found in the [`Ibexa\Contracts\Collaboration\Value\Query\SortClause`](/api/php_api/php_api_reference/namespaces/ibexa-contracts-collaboration-invitation-query-sortclause.html) namespace.
Use them to work with objects related to [collaborative editing API](collaborative_editing_api.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Use them to work with objects related to [collaborative editing API](collaborative_editing_api.md).
Use them to work with objects related to [Collaborative editing API](collaborative_editing_api.md).


## Invitation Search Sort Clauses

Expand Down