Applications
Business Applications Overview
Each CPF Module can contain one or more business application. This page describes how to manage those business applications.
In addition to the business application administration pages described here the following sections describe how to manage items related to a business application.
NOTE: The user must be in the ADMIN, or ADMINMODULE[MODULE_NAME]_ADMIN groups to manage business applications. Module admins will only see business applications they are module admins for.
Business Application Fields
The following table summarizes the fields used for business applications.
Num Requests Per Worker | The maximum number of requests that will be set in an execution group to a worker for sequential execution. The CPF splits the request into this number of execution groups when the job is pre-processed. The goal should be to have execution groups take between 1-10 seconds to execute on the worker. The balance should be between the size of data for an execution group and the execution time. This will help reduce the overhead of the system. For example if a request takes 10ms to run a value of 100 would take approximately 1 second to run on the worker. |
---|---|
Max Concurrent Requests | The maximum number of execution groups that will be scheduled at a single time. This should not be more than the total number of cpfWorker.maximumPoolSize across all workers. If plug-ins use database connections then it should not exceed the maximum database connection pool size or connection limits. |
Max Requests Per Job | The maximum number of requests that can be submitted in a job. Jobs with more requests than the maximum will be rejected. |
Has Geometry Result Attribute | Flag indicating if the business application returns a geometry as one of the result parameters. |
Has Result List Customization Properties | Flag indicating if the plug-in has customization properties on a result list property. |
Result List Property | Flag indicating if the plug-in returns more than one result for a single request. |
Has Customization Properties | Flag indicating if the plug-in customizes the form or result formats. |
Result Data Content Types | The list of MIME types of for the supported result data file formats. |
Per Request Result Data | Flag indicating if the plug-in returns a separate file for each request or generates a single structured data file with each record being a the result for each request. |
Has Geometry Request Attribute | Flag indicating if the business application accepts a geometry as one of the request parameters. |
Input Data Content Types | The list of MIME types of for the supported input data files. |
Per Request Input Data | Flag indicating if the plug-in accepts multiple files with each file being a separate request or a single structured data file with each record being a separate request. |
Validate Geometry | Flag indicating if the geometries should be validated and rejected if invalid before execution by the plug-in. |
Geometry Factory | The geometry factory that all geometries will be converted to before execution on the plug-in. |
Instant Mode Permission | The permission to restrict access to submission of instant mode requests. |
Batch Mode Permission | The permission to restrict access to submission of jobs. |
Test Mode Enabled | Flag indicating if the web services show the test mode fields when submitting a job. |
Log Level | The level log logging ERROR, INFO, DEBUG. ERROR should be used unless there is an issue to be diagnosed. INFO and DEBUG generate large log files and slow down the application. |
Description Url | URL to an external page providing more documentation for the module. |
Title | The display title shown on the web app for the business application. |
Module | The name of the Module the business application is loaded from. |
Name | The name of the module. Used for links and to flag the app for a job. |
Name | Description |
Permission Strings
Permissions are defined using a Spring Security Expression that if evaluated to true will grant the user permission.
The simplest permission is uses the hasRole function to see if the user is a member of a CPF group. The function takes a single argument that is the CPF group name prefixed by ROLE_. The following example grants access to all internal users.
The `hasAnyRole` function will allow access if the user is a member of any of the listed groups. The following example grants access to all internal and business users.
This could also be written using the or operator.
The `hasRoleRegex` will allow users who have a CPF group that matches the [Java regular expression](http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html). The following example matches all CPF groups that start with BCGOV
The permission permitAll grants all users permission.
The permission denyAll grants no users permission.
Business Applications Lists
The business applications pages contain a scrolling table of the business applications for a module. The contents of this table can be filtered by typing at least 3 characters in search box. The table will show business applications where the name, module or title contain those characters characters (ignoring case).
All Business Applications List
The list of all business applications a user has permission for can be viewed using the following steps.
- Open the [CPF Admin Application](<a href="http://localhost/admin/)
- Click the Business Applications menu item.
Module Business Application List
The list of business applications for a module can be viewed using the following steps.
- Open the View Module page.
- Click the 'Business Applications' tab.
View Business Application
Business Applications can be viewed using the following steps.
- Open one of the Business Applications Lists pages.
- Scroll or search for the business application.
- Click the link in the 'Name' column.
Edit Business Application
Business Applications can be edited using the following steps.
NOTE: Editing a business application will require a manual restart of the module for the settings to take affect.
- Open the View Business Application page.
- Click the .
- Edit the field values.
- Log Level
- Test Mode Enabled
- Batch Mode Permission
- Instant Mode Permission
- Max Requests Per Job
- Max Concurrent Requests
- Num Requests Per Worker
- Click the button to save changes, to undo any changes, or to return to previous page.