FME Server Configuration Reader/Writer

Licensing options for this format begin with FME Professional Edition.

Note: To use this format, you must be connected to an FME Server version 2013 and above. The FME Server Configuration Reader/Writer also requires that you use an FME Server user that has the fmesuperuser role.

The FME Server Configuration reader and writer provide FME with the capability to import, export or migrate configurations to or from an FME Server instance.

Overview

The FME Server Configuration reader offers the possibility to dynamically request an FME Server for the configuration categories it supports (e.g. repository, service, security…) and export the data from one or multiples categories as features. Each selected categories are represented inside Workbench as an individual feature type.

During a reading operation, the configuration components (for example, services, repositories, workspaces, service registrations…) of the selected categories are fetched from the server at once, and then converted to features. The reader represents all configuration components using the same fixed schema, with the actual data of the configuration component being enclosed within the content attribute. Every feature in an FME Server Configuration dataset is uniquely identified by its URI attribute.

During a writing operation, the writer expects to receive features having the same fixed schema structure as provided by the reader. The writer will wait to receive all the features before assembling them into a configuration package. The package will then be imported to the FME Server. The FME Server then processes the information received and updates its configuration as needed.

FME Server Configuration format is a non-spatial format that produces and consumes feature with attributes and null geometries, thus it is unlikely that this reader or writer would be used for a true translation of GIS, or CAD data. Instead, it is most useful in managing the configuration of an FME Server instance. When the reader and writer are used together they can be used for migration of a configuration from one server to another or the reader alone can be used for backup purposes.

For a description of the feature schema and format attributes, see the Feature Representation section.

Configuration Categories and Items

FME Server supports migrating the following configuration categories:

  • Repositories
  • Services
  • Notifications
  • Security
  • Scheduling
  • Shared Resources
  • Favorite

Configuration categories represent different functions of FME Server. The following table shows the item types supported by each category. The hierarchical structure also represents the ownership of items by other items. For example, a repository owns workspaces, templates, custom formats and custom transformers which, in turn, own service registrations items.

Category

Item Types

Repository repositories workspaces item_service_registrations
templates item_service_registrations
custom_formats item_service_registrations
custom_transformers item_service_registrations
Service services
Notification topics
subscriber_protocols subscribers topic_registrations
publisher_protocols publishers topic_registrations
Security roles
users user_role_registrations
user_tokens
app_resource_categories role_permissions
app_resources role_permissions
Scheduling task_categories tasks
Shared Resources shared_resources shared_resource_file_infos
Favorite repository_items

Migration Behavior

The migration import behavior can be controlled by using the Writer Mode parameter.

In Insert mode, no data on the target FME Server will be overwritten. Only data available in the imported configuration package and not available on the FME Server will be imported. In update mode, all the data in the configuration package will be imported to the FME Server. Data that exists in both the FME Server and the imported configuration package will be overwritten and new data will be added.

Repositories

Insert: Repository items missing on server are added; existing items are not updated.

Update: Repository items missing on server are added; existing items are updated.

Services

Insert and Update: Services missing on server are added; existing services are not updated. This is to prevent breaking service definitions on the target server.

Notifications

Insert: Topics, subscribers and publishers missing on server are added; existing ones are not updated.

Update: topics, subscribers and publishers missing on server are added; existing ones are updated. A union is performed between topic registration already present on the target server and topic registrations received from the source.

Security

Insert: Users, roles and tokens missing on server are added; existing ones are not updated. A union is performed between the permissions already present on the target server and the permissions received from the source.

Update: Users, roles and tokens missing on server are added; existing ones are not updated. A union is performed between user role registrations already present on the target system and user role registrations received from the source. Permissions for roles present on both the source and target servers are overwritten, and permissions for roles present only on the target server are left unchanged.

Scheduling

Insert: Tasks missing on the server are added; existing ones are not updated.

Update: Tasks missing on the server are added; existing ones are updated.

Resources

Insert: Files or folders that are missing are added; existing ones are not updated.

Update: Files or folders that are missing are added; existing ones are updated.

Favorite

In both Insert and Update modes, a user favorite is imported if the corresponding repository item and user exist, and the repository item is not already a favorite of the user.

Limitations

The FME Server Configuration reader has limitations on the size of the files it can handle. The reader performances are also dependent on the amount of memory allocated to the Java Virtual Machine.

Platform Output Format File Size Limit Feature size limit (files + configuration)

FME 32

FFS

~ 1 GB

~ 2 GB

FME 32

FME Server Configuration

~ 1 GB

~ 2 GB

FME 64

FFS

~ 1.9 GB

2 GB

FME 64

FME Server Configuration

~ 2 GB

System memory

Filtering

The reader does not permit fine grain selection of configuration items at a lower level than the category, but it is possible to perform filtering on features using FME transformers. To do so, it is important to understand that configuration items read from the FME Server have two kinds of dependencies.

Firstly, the configuration items are organized under a tree like structure and each node has an implicit dependency on its parent (e.g., a workspace depends on the repository containing it).

Secondly, an item can depend on other items (e.g. a workspace service registration depends on the service it is referring to, but is a children of workspace). When performing filtering, items depending on a filtered item should also be filtered out. This can be achieved by using the fmeconfig_uri (i.e., parent dependency) and fmeconfig_dependencies{}.uri (i.e., items dependencies) attributes.

Note: Usage of the FME Server Configuration reader or writer requires that you have a running FME Server that can be reached by your machine through the network. Also, the reader and writer rely on the FME Server REST Service to access the FME Server configuration and so require you to have access to this service. Finally, because the reader and writer can access and modify data that might not be accessible to every FME Server user (including FME Server security configurations), the credentials provided to the reader and writer must be of an FME Server user assigned with the fmesuperuser role.

Reader Overview

FME considers an FME Server Configuration dataset to be an instance of an FME Server.

The basic reading process involves opening a connection to the FME Server, querying for the supported configuration categories, and reading the data.

The data is readby requesting the server for a complete configuration package, and by parsing the returned result and formatting it into features.

Writer Overview

FME considers an FME Server Configuration dataset to be an instance of an FME Server.

The basic writing process involves opening a connection to the FME Server, receiving and assembling all the features into a configuration package, and sending the data to the server.

Depending on the kind of data sent, the writer mode, and the initial state of the server configuration, the configuration components will either be added to the server configuration, or the existing components will be updated.

Fanout

The FME Server Configuration writer does not support dataset fanout or feature type fanout.