Cloud Software Group, Inc. EBX®
Documentation > User Guide > Dataspaces
Navigation mode Documentation > User Guide > Dataspaces

# Working with existing dataspaces

## Dataspace information

Certain properties associated with a dataspace can be modified by selecting Actions > Information from the navigation panel in the Dataspaces area.

Documentation | Localized labels and descriptions associated with the dataspace.
Child merge policy | This merge policy only applies to user-initiated merge processes; it does not apply to programmatic merges, for example, those performed by workflow script tasks. The available merge policies are: Allows validation errors in result: Child dataspaces can be merged regardless of the validation result. This is the default policy. Pre-validating merge: A child dataspace can only be merged if the result would be valid.
Current Owner | Owner of the dataspace, who is, by default, allowed to modify its information and permissions. The owner does not necessarily have to be the creator of the dataspace.
Child dataspace sort policy | Defines the display order of child dataspaces in dataspace trees. If not defined, the policy of the parent dataspace is applied. Default is 'by label'.
Change owner | Whether the current owner of the dataspace is allowed to give ownership to another profile by modifying its 'Current owner' property. If the value is 'Forbidden', only an administrator can modify the owner.
Change permissions | Whether the current owner of the dataspace is allowed to modify its permissions. If the value is 'Forbidden', only an administrator can modify the permissions of the dataspace.

## Dataspace permissions

### General permissions

Dataspace id | The dataspace to which the permissions will apply.
Profile selection | The profile to which the rule applies.
Restriction policy | Whether these permissions restrict the permissions assigned to a given user through policies defined for other profiles. See Restriction policy.
Dataspace access | The global access permission on the dataspace. Read-only Can see the dataspace and its snapshots, as well as child dataspaces, according to their permissions. Can see the contents of the dataspace depending on their permissions; cannot make modifications. Write Can see the dataspace and its snapshots, as well as child dataspaces, according to their permissions. Can modify the contents of the dataspace depending on their permissions. Hidden Cannot see the dataspace nor its snapshots directly. From a child dataspace, the current dataspace can be seen but not selected. Cannot access the contents of the dataspace. Cannot perform any actions on the dataspace.

### Allowable actions

Users can be allowed to perform the following actions:

Create a child dataspace | Whether the profile can create child dataspaces.
Create a snapshot | Whether the profile can create snapshots from the dataspace.
Initiate merge | Whether the profile can merge the dataspace with its parent.
Export archive | Whether the profile can perform exports.
Import archive | Whether the profile can perform imports.
Close dataspace | Whether the profile can close the dataspace.
Close snapshot | Whether the profile can close snapshots of the dataspace.
Rights on services | Specifies the access permissions for services.
Permissions of child dataspaces when created | Specifies the default access permissions for child dataspaces that are created from the current dataspace.

## Merging a dataspace

When the work in a given dataspace is complete, you can perform a one-way merge of the dataspace back into the dataspace from which it was created. The merge process is as follows:

1. Both the parent and child dataspaces are locked to all users, except the user who initiated the merge and administrator users. These locks remain for the duration of the merge operation. When locked, the contents of a dataspace can be read, but they cannot be modified in any way.

   Note: This restriction on the parent dataspace means that, in addition to blocking direct modifications, other child dataspaces cannot be merged until the merge in progress is finished.

2. Changes that were made in the child dataspace since its creation are integrated into its parent dataspace.

3. The child dataspace is closed.

4. The parent dataspace is unlocked.

### Initiating a merge

To merge a dataspace into its parent dataspace:

1. Select that dataspace in the navigation pane of the Dataspaces area.

2. In the workspace, select Merge dataspace from the Actions menu.

### Reviewing and accepting changes

After initiating a dataspace merge, you must review the changes that have been made in the child (source) dataspace since its creation, to decide which of those changes to apply to the parent (target) dataspace.

##### Note

This change set review and acceptance stage is bypassed when performing merges using data services or programmatically. For automated merges, all changes in the child dataspace override the data in the parent dataspace.

The change acceptance process uses a side-by-side comparison interface that recapitulates the changes that require review. Two change set columns are obtained by taking the relevant changes from the following dataspace state comparisons:

- The current child dataspace compared to its initial snapshot.

- The parent dataspace compared to the initial snapshot of the child dataspace.

By default, all detected changes are selected to be merged. You may deselect any changes that you want to omit from the merge. You can view the changes relevant to different scopes in your data model by selecting elements in the navigation pane.

In order to detect conflicts, the merge involves the current dataspace, its initial snapshot and the parent dataspace, because data is likely to be modified both in the current dataspace and its parent.

The merge process also handles modifications to permissions on tables in the dataspace. As with other changes, access control changes must be reviewed for inclusion in the merge.

When you have decided which changes to merge for a given scope, you must click the button Mark difference(s) as reviewed to indicate that you have reviewed all the changes in that scope. All changes must be reviewed in order to proceed with the merge.

#### Types of modifications

The merge process considers the following changes as modifications to be reviewed:

- Record and dataset creations

- Any changes to existing data

- Record, dataset, or value deletions

- Any changes to table permissions

#### Types of conflicts

This review interface also shows conflicts that have been detected. Conflicts may arise when the same scope contains modifications in both the source and target dataspaces.

Conflicts are categorized as follows:

- A record or a dataset creation conflict

- An entity modification conflict

- A record or dataset deletion conflict

- All other conflicts

### Finalizing a merge

Once you have reviewed all changes and decided which to include in the merge result, click on the Merge >> button in the navigation pane.

Depending on the child merge policy that is configured on the parent dataspace in your merge, the subsequent process may differ. By default, merges are finalized even if the result would contain validation errors. The administrator of the parent dataspace in your merge can set its child merge policy so that merges of its children are only finalized if the result would not contain any validation errors.

If, however, the administrator of the parent dataspace has set its child merge policy to 'Pre-validating merge', a dedicated dataspace is first created to hold the result of the merge. When the result is valid, this dedicated dataspace containing the merge result is automatically merged into the parent dataspace, and no further action is required.

In the case where validation errors are detected in the dedicated merge dataspace, you only have access to the original parent dataspace and the dataspace containing the merge result, named "[merge] < name of child dataspace >". The following options are available to you from the Actions > Merge in progress menu in the workspace:

- Cancel, which abandons the merge and recuperates the child dataspace in its pre-merge state.

- Continue, which you can use to reattempt the merge after you have made the necessary corrections to the dedicated merge dataspace.

#### Setting the child merge policy of a dataspace

As the administrator of a dataspace, you can block the finalization of merges of its child dataspaces through the user interface when the merges would result in a dataspace with validation errors. To do so, select Actions > Information from the workspace of the parent dataspace. On the dataspace's information page, set the Child merge policy to Pre-validating merge. This policy will then be applied to the merges of all child dataspaces into this parent dataspace.

##### Note

When the merge is performed through a Web Component, the behavior of the child merge policy is the same as described; the policy defined in the parent dataspace is automatically applied when merging a child dataspace. However, this setting is ignored during programmatic merge, which includes script tasks in data workflows.

##### See also

- Child merge policy

### Abandoning a merge

Merges are performed in the context of a user session, and must be completed in a single operation. If you decide not to proceed with a merge that you have initiated, you can click the Cancel button to abandon the operation.

If you navigate to another page after initiating a merge, the merge will be abandoned, but the locks on the parent and child dataspaces will remain until you unlock them in the Dataspaces area.

You may unlock a dataspace by selecting it in the navigation pane, and clicking the Unlock button in the workspace. Performing the unlock from the child dataspace unlocks both the child and parent dataspaces. Performing the unlock from the parent dataspace only unlocks the parent dataspace, thus you need to unlock the child dataspace separately.

## Comparing a dataspace

You can compare the contents of a dataspace to those of another dataspace or snapshot in the repository. To perform a comparison, select the dataspace in the navigation pane, then select Actions > Compare from the workspace.

The comparison wizard prompts you to select the dataspace or snapshot with which to compare the current dataspace.

For a faster comparison that ignores fields with inherited and computed values, select the filter 'Persisted values only'.

##### See also

- Compare contents

## Validating a dataspace

To perform a global validation of the contents of a dataspace, select that dataspace in the navigation panel, then select Actions > Validate in the workspace.

##### Note

This service is only available in the user interface if you have permission to validate every dataset contained in the current dataspace.

## Dataspace archives

The content of a dataspace can be exported to an archive or imported from an archive.

### Exporting

To export a dataspace to an archive, select that dataspace in the navigation panel, then select Actions > Export in the workspace. Once exported, the archive file is saved to the file system of the server, where only an administrator can retrieve the file.

##### Note

See Archives directory in the Administration Guide for more information.

In order to export an archive, the following information must be specified:

Name of the archive to create | The name of the exported archive.
Export policy | Required. The default export policy is 'The whole content of the dataspace', which exports all selected data to the archive. It may be useful to export only the differences between the dataspace and its initial snapshot using a change set. There are two different export options that include a change set: 'The updates with their whole content' and 'The updates only'. The first option exports all current data and a change set containing differences between the current state and the initial snapshot. The second option only exports the change set. Both options lead to a comparison page, where you can select the differences to include in this change set. Differences are detected at the table level.
Datasets to export | The datasets to export from this dataspace. For each dataset, you can export its data values, permissions, and/or information.

### Importing

To import content into a dataspace from an archive, select that dataspace in the navigation panel, then select Actions > Import in the workspace.

If the selected archive does not include a change set, the current state of the dataspace will be replaced with the content of the archive.

If the selected archive includes the whole content as well as a change set, you can choose to apply the change set in order to merge the change set differences with the current state. Applying the change set leads to a comparison screen, where you can then select the change set differences to merge.

If the selected archive only includes a change set, you can select the change set differences to merge on a comparison screen.

## Closing a dataspace

If a dataspace is no longer needed, it can be closed. Once it is closed, a dataspace no longer appears in the Dataspaces area of the user interface, nor can it be accessed.

An administrator can reopen a closed dataspace as long as it has not been cleaned from the repository.

To close a dataspace, select Actions > Close this dataspace .

##### See also

- Closing unused dataspaces and snapshots

User guide table of contents

Documentation > User Guide > Dataspaces