Packages

Learn about the packages and how to use these packages in your integrations.

About Packages

A package contains a set of services and related files, such as specifications and document types. When a project is created, a package is created with the same name as the project. For example, if you create a project named FlowAny, an associated package is automatically generated in the system as FlowAnyProject. When you add a service, specification, or document type to the project, they are stored in the corresponding package. So, a package contains the assets used in the project. Thus, you can easily manage all the services and files in the package as a unit.

Apart from your project assets, you can add the integration packages stored in any external repositories to a project and use it along with other assets in the project. Currently, you can add packages that are stored in GitHub.

Important
webMethods packages referenced in your package are pulled from the WebMethods Package Registry and like containers are secured using an access token. This token is automatically generated and included in the runtime manifest file by your tenant. This token can become invalidated and result in errors when syncing. In which case you must perform a resync from webMethods Integartion to get a refreshed token.

Packages offer many benefits such as,

Accessing Packages

  1. Click Projects from the top navigation menu. All projects appear.

  2. Click a project card for which you want to view the project package details.

  3. Click Packages. The list of packages associated to the project appears in a tabular format.

  4. Click the package for which you want to view the details. The package details appear, see Packages Tab.

Packages Tab

The Packages tab lists the packages used in your project. The main package created when the project was set up is highlighted in blue and appears on the first row. Custom packages imported from external repositories are listed beneath the main package.

The Packages tab displays the following details about the packages used in a project:

Package Information

The Package Information tab lists the following details:

Assets

Assets are files or resources used by various services in your project. The Assets tab lists all the integration resources related to the flow services within the package.

The following asset details are displayed:

Security

The Security tab in the Packages page shows a list of services that are denied by default within a package.

Key points to consider

The Security tab displays the following information:

Libraries

The Libraries tab provides a list of all third-party libraries such as JAR or Shared Object (SO) files uploaded in the project.

The basic library details such as name, and classpath type appear. You can perform the following operations on these libraries:

How to Reload a Package

Key points to consider for Load status usage

  1. Go to Projects > Packages. The Load Status column reads No if a package with unresolved dependencies is added.

  2. Click Reload.

    A confirmation message appears.

  3. Click Reload.

Adding Packages to a Project

You can add your own integration packages stored in an external repository to a project and use it along with other assets in the project. Currently, you can add packages that are stored in GitHub.

Note
  • It is not possible to import a Integration project package into another Integration project. Projects are considered top-level integrations and must be deployed independently. Create a custom package if you want to share code between projects and use messaging for intra project collaboration.

  • Only the latest version of the CloudStreams Connector provider packages are supported.

  • Database, IBM® Power®, SAP® ERP, Kafka and IBM MQ accounts imported from Git will be disabled. You must update the password before enabling the accounts.

  • Global variables of type password imported from Git will initially be set to null. You must update the global variables of type password before running the flow services using them.

Before you Begin

Basic Flow

  1. Click the Projects tab from the navigation menu.

  2. Select a project and click Packages. The details of packages, if any, assigned to that project appear.

  3. Click Add package. The Add Package page appears.

  4. Select Git. The options to enter Git details appear.

  5. Provide the following details:

    • In GIT URL, enter the URL of the package repository where the package is hosted.

    • In Source Control, select the display name of the account associated with the repository. The drop-down list displays all GitHub accounts available to you.

    Note
    You can add a new GitHub account by clicking Add. For more information about adding a new GitHub account, see Configuring GitHub Accounts.
  6. Click Next.

  7. Select a particular branch or tag of the repository to use as the source for the package in the Git branch/Tag field.

  8. Click Pull. A confirmation message appears after a successful addition of a package to a project. The assets such as flow anywhere services, connectors, and any other artifacts associated with in the package can now be used in your project.

Updating Packages

You can retrieve the updates done to a package from the repository.

Key points to consider for successful packages uploads are as follows:

  1. Navigate to the Package Information page.

  2. Select the desired branch or tag from the options provided in the Git branch/tag drop-down field.

  3. Click Pull.

    The pull action updates the packages to their latest versions available in the repositories.

Dependent Assets

If a service in the project references or depends on an asset, then that asset is considered a dependent asset for that service. The Dependent Assets view displays assets that are being used by each service in the same project or in a different project. Additionally, you can navigate to the integration where an asset is used from the Dependents Assets view.

Currently, the Dependent Assets view displays the Flow and Adapter services asset types only.

Viewing assets used within a Package

  1. In the Assets tab, click the asset name displayed under Name. The Dependent Assets wizard appears.

  2. Review all the dependencies.

  3. [Optional] Click the asset name in Usage Information. The integration in which the service is used appears in a new window.

You can use the following filter options to view the usage of desired assets:

Package Services

Any services that are part of the package imported to your project are known as Package Services. You can access the services in these packages in your integrations as follows:

Workflows

Flow Services

REST APIs

Note
Audit logging is not supported for the sync and restart operations that are part of deployments.

Approaches to Configure Package Connections for Runtimes

You can configure package service connections used in your integrations in either of the following approaches:

Using Package Services in Workflows

Assume that you have added your own integration packages stored in any external repositories to a project. For more information on how to add packages, see Adding Packages to a Project. Let us see how to use these services in a workflow and configure runtimes for these services.

Note
You can access only flow services and java services in a workflow.
  1. Go to the project where the services are added.

  2. Click Integrations > Workflows.

  3. Click the (plus icon). The workflow page appears. You can search and filter package services by either their service name or by the package name.

  4. Click Create New Workflow. The workflow canvas appears.

  5. Click Flow Services to view the package services.

  6. Select the package and drag and drop the package into the canvas. For example, Addint.

  7. Click the Addint package and select Settings.

    The AddInt settings dialog box along with the service name appears.

  8. Select a runtime from the Select Integration Runtime drop-down list.

  9. Click Next. The Incoming data page appears.

  10. Add the input values.

  11. Click Next. The Test this action page appears.

  12. Click the Sync button to sync the packages to the runtime.

  13. Click Test.

  14. Click Done.

Using Package Services in Flow Services

Assume that you have added your own integration packages stored in any external repositories to a project. For more information on how to add packages, see Adding Packages to a Project. Let us see how to use these services in a flow service and configure runtimes for these services.

  1. Go to the project where the services are added.

  2. Click Integrations > Flow services.

  3. Click the (plus icon). The Flow Editor page appears.

  4. In the flow step, click All > Package Services.

  5. Select a service.

  6. Select an operation.

  7. Select a runtime.

  8. Click to sync the packages.
    An orange or red dot appears on the Sync button when user actions are required. Hover over the Sync button to view the information.
    For more information on scenarios and actions, see Indications for the Sync and Run buttons in Flow Editor.

  9. Click Save. The services are now configured to your runtime.

Using Package Services in a REST API

The steps to create a REST API using package services is same like how you create a REST API for any workflow or flow service, except for an additional step as follows:

While adding resources in the Resources and Methods page, you can select the package service you want to run through this API in the Select services drop-down list.

After you select a package service, the following fields appear to configure the runtime:

Note
  • Ensure that auditing is enabled for packages before exporting them from webMethods Service Designer. See, Enabling Monitoring for Package Services. In the Monitor page, to view the package service executions, you must select the appropriate runtime.

  • Publish-deploy for REST API using flow services and workflows containing package services is supported. However, if the package services are directly used in REST APIs, you must reselect the runtimes in target environment after each deployment. Otherwise, connections would point to the source environment only after deployment.

  • You can clone a REST API using package service, but you need to add the package to the target project.

View Package Services Configured in a Project

The Deploy Anywhere page under Projects > Connectors displays services used in packages that you imported into your project.

About Deploy Anywhere page

The Deploy Anywhere page consists of the following sections:

Filters

You can use filters to view the desired package services based on the following options:

You can use either one or combination of these filter options to search for package services.

Connector Table

You can view the list of all connectors that are used in a package. The table lists the following details:

Manage Package Service Connections Configured in a Project

  1. Go to Projects > Select a Project > Connectors > Deploy Anywhere.

  2. Click the drop-down arrow next to the connector you want to modify the connection. All connections created for the selected connector appears.

  3. Click Manage runtimes for the connection you want to modify. The Runtimes with connector name pane appear with the following details:

    • Name: Name of the runtime.

    • Status: Current status of the runtime.

  4. Do one of the following actions by selecting the respective button in the Actions column:

    • Edit: Allows you to edit the connection details. The Edit Connection properties page appears for you to modify and save the details. For more information about the fields in the connector, see the respective connector on the Connectors page.

    • Delete: Allows you to disable the connection to the runtime.

    • Sync: Allows you to synchronize all assets with the selected runtime and all instances connected with a runtime. If you are adding new assets in the runtime, the sync operation might take few minutes.

Add New Package Service Connections in a Project

  1. Go to Projects > Select a Project > Connectors > Deploy Anywhere.

  2. Click the drop-down arrow adjacent to the connector for which you want to modify the connection. All connections created for the selected connector appears.

  3. Click Manage runtimes for the connector you want to add. The Runtimes with connector name pane appear.

  4. Click . The Add Runtime page appears.

  5. Select one or more runtimes from the available list of runtimes.

  6. Click Add. The connection is configured in the selected runtime.

Publish and Deploy Projects with Packages

Publish Wizard

The Publish wizard does not display the package services if any integrations are using them. If you publish a project, all packages added to the project are automatically published, regardless of whether you have used any package services in the integration.

Deploy Wizard

The Deploy wizard includes the following additional pages:

Configure Git Account Page

The Configure Git Account page lists all Git accounts configured in the tenant. You can choose one of the existing Git accounts from the drop-down list adjacent to the package. In case of redeployments, the previously configured Git account is selected by default.

Additionally, you can create a new Git account by clicking the “+” button next to the drop-down list and use it for the project.

Integration Runtimes Page

The Integration Runtimes page lists all runtimes configured for the services used in the integrations. By default, the runtimes configured in the source environment are considered in the target environment during the first deployment. Otherwise, the most recently configured runtime is considered.

For REST APIs, all resources are listed against the API name. For example, if the REST API has one resource with three methods,

then during the deployment, the resources are listed in the Integration Runtimes page as follows:

Note
The service names in REST APIs using packages are displayed in the following format: <Package service name>/<resource path><method name>.

Additionally, you have options to synchronize or restart runtimes after a successful deployment.

Key Points for Successful Deployments

Deploying Projects with Packages

Before you Begin

Basic Flow

  1. Log in to your tenant (destination).

  2. Go to the Projects dashboard. If a new deployment is available for a project, then a message appears on the project card.

  3. Click the project card that has the deployment message. A confirmation messages appears.

  4. Click Yes. The Deployments page appears listing all deployments.

  5. Click Deploy. The Configure Git Account page in the Deployment wizard appears.

  6. Select the Git account from the Account details drop-down list. This account is used to retrieve package details from the repository. If you do not want to use an existing account, then create a new account by clicking the + button.

  7. Click Next. The Integration Runtimes page in the Deployment wizard appears.

  8. Select the runtime from the Target Integration Runtime drop-down list.

    • If the integration is already present in this project and has the same package services configured in it, then the runtime is selected based on the current configuration instead of what is present in the deployment.

    • If the runtime does not exist in the target environment, then an error message appears, and you need to either create a runtime or select a runtime from the existing list.

  9. Do one of the following actions:

    • Select Sync all the target runtimes on deployment if you do not want to reconfigure the package service connections after deployment. The Restart Options appears.

    • Clear Sync all the target runtimes on deployment if you need to reconfigure the package services connections after deployment.

  10. Click Restart Options to select specific runtimes that must be restarted after a successful deployment in the Selected target integration runtimes to restart page.

    Note
    • Offline runtimes are not listed in the Selected target integration runtimes to restart page.

    • Syncing and restarting happens only for the running runtimes.

    • Cloud runtime cannot be restarted.

    • The sync and restart operations are asynchronous processes and may take additional time even after the project has been deployed.

  11. Click Next. The Accounts page appears. Follow the steps mentioned in the Deploying Projects section from step 5.

    Note
    • Deployed project cannot be edited in the target environment as they do not retain any link to the original version control. Instead make changes in your development environment and redeploy. Likewise, deployment from a higher to lower environment is not supported.

    • After deployment, projects previously linked to an external repository now utilize the default repository.

Post Deployment Steps

  1. Verify your configurations. For example,

    • Reconfigure the package service connections, if any.

    • In REST or SOAP APIs, if you are using flow service containing package services, then you must reconfigure the runtime configurations post deployment. This is because the runtime details selected during the deployment are not retained.

  2. Test and monitor your integrations in the target environment after successful deployment.

Enabling Monitoring for Package Services

By default, integrations that use package services are not visible in the Monitor section. To monitor, you need to enable auditing in webMethods Service Designer before exporting the services.

For more information on how to enable audit for a service, see Enabling Audit in the webMethods Service Designer in webMethods End-to-End Monitoring documentation.

Assets Supported in Packages

This table provides a list of capabilities that are supported when a package built using IBM webMethods Designer is imported into IBM webMethods Integration project.

webMethods Integration Server Configuration or Asset Name Minimum Runtime Version Supported Description
Flow Service 11.0.0 Flow services built using supported assets can be imported into IBM webMethods Integration projects and deployed to runtimes.
Java Service 11.0.6 By default, Java services are denied from execution in the runtime. If required, you can enable execution selectively from the Security tab of the imported package.
Map Service 11.0.0 Map and transformations are supported in runtimes.
Document Type 11.0.0 Document types in the package are supported and can be used by services in the runtime.
Flat File Dictionary 11.0.6 Flat File dictionary in the package is supported and can be used by services in the runtime.
Flat File Schema 11.0.6 Schema in the package is supported and can be used by services in the runtime.
Schema 11.0.6 Schema in the package is supported and can be used by services in the runtime.
Global Variables 11.0.6 Package scoped global variables are supported and can be used within the packages in the runtime.
FTP 11.0.7 Only outbound FTP is supported, allowing users to send files to external servers.
Inbound FTP is not supported, that is, runtime cannot act as an FTP proxy. Files can be stored externally in a mounted volume. Ideally, it is not recommended to store files within the container, as containers are volatile.
HTTP 11.0.7 Only outbound HTTP is supported.
Inbound FTP is not supported for deploy anywhere integrations. However, inbound calls are supported for regular workflows or flow services in IBM webMethods Integration.
SMTP 11.0.7 Only outbound SMTP is supported, and users can send outbound emails using the pub.client.smtp services. SMTP aliases are not supported in version 11.0.6.

Key Points to Consider for Packages

The Packages feature does not support publishing or deploying packages from one project to another.

Libraries in a Project

The Libraries page provides a list of all third party Java libraries (JAR files) uploaded in the project. You can navigate to the Libraries page by performing the following steps:

  1. Click the Projects tab from the navigation menu.

  2. Select a project and click Packages. The package name and version, if any, assigned to that project appear.

  3. Select the package. The details of packages, including the version, startup and shutdown services, used by and dependent package information appears.

  4. Click Libraries. The list of Java libraries appear.

    The basic library details such as name, and classpath type appear. Additionally, you can search, add, delete and download the libraries.

You can perform the following operations:

Note
  • You can upload libraries with the same name if the Classpath type is different.
  • Changes to the uploaded or deleted libraries will take effect only after the package is reloaded or the runtime is restarted.

Linking a Package Registry to a Tenant

All webMethods packages are stored and maintained as individual private Git repositories managed by IBM. The Integration Runtimes retrieve the required packages from the webMethods Package Registry while running your integrations. For successful package retrieval you need to configure your credentials. Otherwise, the integrations fail. For example, you have not linked your credentials and try to access a Database connector in your integration. While running the integration the runtime cannot access the webMethods Package Registry and displays the following error message:

You can configure the credentials in the Package Registry Connection page. To link a package registry to a tenant you must have administrative access. Only one ID can be linked to a tenant at a given time.

Note
New users starting with version 11.0.7, contact IBM support to obtain the Empower tokens to access the Container Registry and webMethods Package Registry.
  1. Go to User Profile > Settings > Empower. The Package Registry Connection page appears.

  2. Enter your credentials in the Empower ID and Password fields.

  3. Select the number of days the connection must be valid from the Valid till drop-down list. For generating a lifetime access token select Never.

    Note
    You can specify a custom value by selecting the Custom option. In this case, select a date using the Calendar control. You cannot select a date that is more than 365 days.

  4. Click Pair. Upon successful pairing, the message about your pairing details appears.

  5. [Optional] Click Test connection to verify the connection status.

    Your credentials are linked to a tenant and runtime can download the packages.

Delinking a Package Registry from a Tenant

Delinking a webMethods Package Registry from a tenant does not allow you to access or retrieve webMethods packages that are stored in the Git repositories managed by IBM. The integrations using any packages in the webMethods Package registry might fail with errors.

You must have administrative access to delink a package registry from a tenant.

  1. Go to User Profile > Settings > Empower. The Package Registry Connection page appears displaying the registered ID details.

  2. [Optional] Click Test connection to verify the connection status.

  3. Click Unpair. The existing details are removed from the tenant.