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.
These environment variables allow you to specify memory available to Java Plugins:
- FME_JVM_MIN_HEAP_SIZE: customize the initial heap size for initializing Java VM.
- FME_JVM_MAX_HEAP_SIZE: customize the maximum heap size for initializing Java VM.
By default, the initial heap size is 1024K and the maximum is 16384K. JVM will take the default values if these two variables are not set. The values of these two variables must be multiples of 1024K (for example, 4M and 64M or 4096K and 32768K).
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.