Version: 2024.1.1

inPoint.Archives

Archives are per-tenant object. Archives and the Archive-Units for each archive can be created and edited. Deleting them is currently not supported.

Archives and Archive-Units

Load the repository plugin and select the tenant. Then navigate to the Archives node:

img

The top list shows all Archives for this tenant. The bottom list shows all Archive-Units for the selected archives in the top list.

Archives and Archive-Units can have status Pending, Active or Inactive. Because you cannot delete this objects the status Inactive was created to hide this object. Pending means that the object was created but is still not ready to use. For example if you want to create multiple objects and enable all of them later with an single operation. Currently the status is shown in inPoint.Admin but not checked on other places (inPoint-Db)

NOTE: Editing the Status in the UI is not possible yet.

Security mode and usages

Archive-Units may have also an Security-Mode and a list of Repositories using this unit. When you create the first repository for an Archive-Unit, the Repository defines a Security-Mode. If you add more repositories to the same unit they share the security mode. Creating is only possible for FlatAU-Repositories.

Creating Archives

img

When creating an new Archive the next free Id is calculated but you may enter another Id. Every Id between 1 and 999 which is not in use by another archive (of any tenant) can be used. You can also enter 0 which means that the server is calculating the next free Id when creating the archive.

The name can be any name but must be also unique for all Tenants!

The database connection is taken from the default archive and could be changed here. The only supported mode is currently to use another scheme. To change to another database was only implemented for migration scenarios. The button right near the schema validates the db-settings.

The HybridStore connection and -tenant is also taken from the default archive and can be changed to any other valid value. The button right near the URI validates the HybridStore settings and loads the available HybridStore tenants (then you can select one instead of entering manually).

Ensure to validate the settings before saving the changes!

After creation, the Id and the Name cannot be changed anymore.

Creating Archive-Units

img

To create a new Archive-Unit you have to select an Archive. The next free Id is calculated like for Archives but allowed ranges is now from 1 to 4095. Also this Id needs to be unique for all Archive-Units of all Archives of all tenants.

Also the name can be any unique name in all Archive-Units of all Archives of all tenants.

Storage

For storage type always use HybridStore. The connection to HybridStore is read from the setting in the Archive, here you have to select which scheme is used.

  • Content (the files archived)
  • Extension (the legacy annotation feature)
  • Temporary (e.g. an automatically generated PDF version for the preview).

The list contains all the schemes defined in HybridStore and the additional "Pam Local Storage" feature, where files are saved directly in the file system.

Retention time

This setting defines how long the archived documents are protected against deletion. This value is given in months. Where the special value of "0" means no protection and the special value of "-1" means to protect forever.

Standard

The default value or standard value if there is no more advanced setting which overrides it.

Command (optional)

An SQL-Query to determine the retention-time (again in months, with -1 meaning forever). If the command returns no result the standard value is used or an error is generated, depending on the check box at the end. (For the parameter use "?" or the names from the next setting prefixed with "@" or ":" depending on the type of database used)

Parameter (optional)

All possible document attributes to be used in the query (comma separated). These are not the nice names from the element format but the physical names from the database.

Column (optional)

The determined retention time will be saved in this document property (the data type must be a date type).

Never use default retention time

If the retention time is determined by a command, a check here means, that there is no default value and the command must always return a result.

Features

The second tab Features allows to select the Features for this Archive-Unit. Should this Archive-Unit used by a FlatAU-Repository you should select the Feature Flat Archive Unit here.

img

NOTE: For modifying existing Archive-Units only Status, Storage and Retention can be changed. You can also add more features but cannot remove them. You can also add and remove Columns which are not required (or required by a selected Feature).

Columns

The third page Columns is only shown when modifying existing Archive-Units. This page shows the DB-Columns of the Unit. Required Columns are grayed and cannot be removed. But you can add other (custom) columns or remove them.

After you have created Repositories for this Unit you should not change the columns for this Unit anymore. The current version of inPoint.Admin does not update the Repositories and formats when the columns are changed. So if you add more columns they are not visible by the Repositories.

img

img

You can create and remove DB-Columns. Only when saving the changes the columns are added or dropped. Throwing an error the save operation is aborted and only some columns where added or dropped. So it is recommended to save each time after adding or removing one column.

Currently you cannot change columns. When this is needed, you can only drop them and add them again. But be careful to backup and restore column data when needed.

Since you cannot specify default values you can not add columns with NOT NULL when the Archive-Unit is not empty!

Global Site Repositories

This type of repository can be created, edited or deleted. When modifying only the description can be changed.

For creation you have to specify a hierarchy- and a site-name. The repository name is calculated from the site name. The site-name is shown in inPoint as Repository Name.

Then you have to select an Archive and a Storage-Scheme. When creating the GSR always a new Archive-Unit and the Repository will be created for the selected Archive.

img

When listening the GSR's all existing GSR's and all GSR-Create- and all GSR-Delete-Requests. The Requests are identified by the sign in the first column. Also the requests are showing the current status in the description column.

The signs are:

  • yellow: New request which was not started yet
  • green: Running request (the LoaderJob is creating or deleting the GSR, the Pam.Loader.exe is currently running on the server)
  • red: Request failed
  • gray: Request executed successful

The requests are not deleted automatically and have to be deleted manually by editing the request and clicking the Cleanup button.

img

NOTE: It's safe to cleanup requests with are not in running (=green sign) When cleaning up new requests (=yellow sign) it's recommended to stop the LoaderJob first. (which means: Stop the Pam.Archive service on the server) When cleaning up a running request you may get some errors during create but would see not response of this errors.

Every request has some logs:

  • State: Summary about this request
  • LogFile: Logs written by the Pam.Loader.
  • ProcessOutput: Console output from Pam.Loader.
  • PamLoaderParameters input: XML-File given to the Pam.Loader.
  • PamLoaderParameters result: XML-File after the Pam.Loader has been finished.

Usually the output in the LogFile should tell you everything you need. It ends with something like Import has been finished successfully or Import FAILED. For Diagnostics the other files can be useful.

Temporary files written by the Pam.Loader are uploaded to the AdminDB and deleted when Pam.Loader finished. If not, they can be found on the server at %temp%\\inPoint.Admin\\createRepository

NOTE: Be careful that the Load-Job is running only on one server. If you run multiple Load-Jobs for the same inPoint-Server at the same time, the Pam.Loader might fail.

Flat Archive-Units

All available (and correctly created) FlatAU-Repositories are listed. FlatAU-Repositories with errors are excluded from the list. (for example repositories with multiple or missing hierarchies or invalid security modes) But they are logged as warning in the server log.

Example:

LOG-022766: 2017-08-22T11:26:31.7690526Z dom\user@host Warn
inPoint.Admin.Server.ServiceUtils SecurityMode 'DefaultPermTable' is
inPoint.Admin.Server.ServiceUtils SecurityMode 'DefaultPermTable' is
not supported. Ignoring Archive Unit 'MAIL' with archiveId #1 and
archiveUnitId #5.

LOG-022777: 2017-08-22T11:26:32.2493478Z dom\user@host Warn
inPoint.Admin.Server.ServiceUtils Ignoring repository #147 "RSR":
Found no matching hierarchy!

img

Create / edit / delete FlatAU-Repositories

img

Fro creation, Hierarchy- and Repository-Name have to be specified. The Hierarchy-Name is the name shown in inPoint. Archive and Archive-Unit also have to be selected. If the Archive-Unit is already used by another Repository you cannot change the security mode anymore. In such case also the Folder- and Document-Rights are shared. Changing them here or later by updating the FlatAU all FlatAU's using this Archive-Unit are affected.

Security modes

For both modes you can select the Folder-Permission.

Static-Security-Mode

You can select Document-Permission which affects all documents.

Preprocessed-Security-Mode

You have to specify a permission-table for the Documment-Permissions. This table affects all existing documents. For new documents you can select the Document-Permissions.

Permissions

Create/Modify-Permissions are not affecting inPoint because in the client FlatAU's are always read-only. But they are checked when using Pam.Archive modify the repository.

After creation, only description, folder permissions and (for static security) document-permissions can be changed.

Folder-Permissions

The folder-permissions can be set per user. Remove all permissions for a user on save to remove the user from the permission-list.

img

The folder-permissions can be set per user when having static security. Removing all permissions for a user on save the user is removed from the permission-list.

Document-Permissions

img

During create also an ElementFormat is created. Since you cannot edit a FlatAU in inPoint you also cannot edit the ElementFormat there. Therefore the ElementFormat can be updated when you modify an FlatAU. The page Format shows you the current format.

NOTE: Editing the Archive-Unit by adding/renaming/removing DB-Columns ends up with an incorrect ElementFormat. Currently there is no way to Re-Create or Update the ElementFormat!

Element Format

img

You have some buttons for adding localizations for the columns. When a language was added it cannot be removed anymore.

  • Column Name: The DB-Column of the Archive-Unit (cannot be changed)
  • Common Name: Used to access the column from Pam.Archive, fall back for Name in inPoint when no localizations have been added. Also used for searching.
  • Width: With of the column in the document list in inPoint.
  • View: Check to show the column in inPoint.
  • Format: Depending on the data type of column, custom formats to format the value in inPoint.
  • Order: Buttons so reorder the element. The order is the order of the columns in inPoint.

When localizations where added, you see an additional column for each language.

img

Having more languages and entering the same value the values are not stored but an fall back is used. The order is:

  • German (...) => German
  • English (...) => English
  • English => German
  • German => CommonName

So if you leave all columns empty, you get the CommonName for all languages.

Entering a different value only in German, shows you in all languages this value.

Entering a different value only for English you will see the value in all English-Columns bot not for the German* columns.

Entering a different value only for German (Germany), the value is only used by this column.

Lookup Repositories

Lookups can be created, modified and deleted. They can be created on Tables or Views. When modifying you can update the description. Only for Table based lookups you can add or remove additional columns. For all lookups you can edit the visibility of the additional columns.

For all lookups, before removing some columns (in the database) you should first remove the visibility state from this columns. After adding columns (in the database) you can set the visibility.

img

Create /edit /delete lookups

For creation you have to specify the name, a table name and an owner. The name can be entered or selected - all compatible tables and views are listed and shown in the drop down. But this list might be incomplete (for example: the check is not done for other schema's) so you can enter any name. When you entered a name of an existing table or view, this object is used, else a new table is created.

The compatible always have the columns int32 PARENTSEQUID, nullable<int32> SEQID and string VALUE.

When deleting a lookup you can delete just the repository or the repository and the underlying database object (table or view).

img

img

On edit, only the description and the columns can be changed.

A second page 'Columns' are showing all columns, the types and the visibility. For table based lookups you can also add or remove custom columns.

img

Delete Requests

Here all requests for purging documents and folder in compliance with the regulations of the GDPR are visible.

img The list supports sorting (click on header) and filtering.

See the development manual how to create purge requests.

Run

Run will resume a paused request, it will not start a request which is in "Waiting for confirmation..." because this decision can not be done by the administrator alone.

Pause

This will pause a running request.

Cancel

This will cancel a running or paused request. This will not directly cancel it, but will only request cancellation.

Reload

Refreshes the current active request.

View

View the individual items (folder or documents) of a delete request to see their states, but it's not possible to make any changes.

Delete

A delete request which has finished (with success or with errors) or was cancelled can be deleted. (The audit log is already created and exported, so it's save to delete it)

Reminder Actions and Reminders

img

A reminder in inPoint can execute a predefined action (a simple REST request), these action are configured here. Additionally reminders in an error state can be retried or aborted.

The actions are executed by a specific job called 'inPoint Reminder Custom Action Job'.

If the action fails it will be retried (the state of the reminder is set to Retry) but after several failed attempts a mail notification will be sent to the defined user and the reminder will be set to Error. The administrator should then repair the action and set the reminder to Retry or Abort it altogether. (A failed reminder will never be deleted automatically and will be visible to a normal user.)

Create / edit a Reminder-Action

img

Settings

Id

The Id of the action, must be unique. (Cannot be changed after creating the action)

Creator

The user who created the action.

Display Name

The name visible to the end user (e.g. when viewing a reminder)

Error Notify User

If there is an error executing the action, this user will be notified by mail. (the full message is written into the log)

URL

The URL to be executed by this action.

TimeOut in Seconds

The timeout for executing the rest request.

User Name / Password

Optional a user and password for basic authentication.

API Key

Optional an API key for authentication.

Bearer Token

Optional a bearer token for authentication.

Extra

Optional any additional fields when executing the rest method. This must be a valid JSON snippet.

Actions

Reset

This will reset all failed reminders using the current action to "Retry". (The number in parentheses is the count of reminders in an error state.)

Abort

This will abort all failed reminders using the current action. (The number in parentheses is the count of reminders in an error state.) (The Cleanup Job will finally remove them.)

REST Request

The URL will be called with a fixed "POST" request and will contain most informations about the reminder and the action. The part of "Extra" is customizable using the extra setting.

{
"Id": "Contract",
"DisplayName": "Contract Expiration Workflow",
"Reason": "Contract will expire on 2021-09-25!",
"Priority": "Normal",
"ReminderID": 112361,
"CreatorID": 16307,
"ItemUri": "pam-item://hierarchy=12@path=4$51034\,10$51037",
"RecipientUserId": 16307,
"RecipientGroupId": 0,
"Extra": {
"text": "Test",
"number": 123
}
}

Reminders

All reminders with action are listed here. Using the filter it's possible to only show the ones in an error state and/or using a specific action. If a reminder is in an error state it can be set to retry or abort.

img

Actions

Reset

This will reset all selected and failed reminders.

Abort

This will abort all selected and failed reminders. (The Cleanup Job will finally remove them.)