Content Management and Capture

Content Management and Capture

Come for answers. Stay for best practices. All we’re missing is you.

 View Only

FNCM on Container Recipe: A Step-by-Step Guide to Post-Deployment Validation

By Anisha Suresh posted Wed December 31, 2025 01:00 PM

  

FNCM on Container Recipe: A Step-by-Step Guide to Post-Deployment Validation

Introduction

Introducing the Next Chapter in the FNCM on Container Series!

Deploying FNCM on Container is only the first step—validating that deployment is just as crucial. In this post, we’ll walk you through how to perform a comprehensive validation of your FNCM Standalone setup to ensure that each component is up and running as expected.

Whether you’re setting up FNCM in a dev/test environment or preparing for production, a solid validation process helps catch configuration issues early and confirms that the deployment aligns with best practices.

This guide provides clear, actionable steps to perform a basic sanity check across all core and optional FNCM components — from verifying overall deployment readiness to validating the functionality of individual components such as CPE, CMIS, CSS, ICN, and more. You’ll learn how to validate the following components:

  1. Content Platform Engine (CPE)

  2. IBM Content Navigator (ICN)

  3. GraphQL

  4. Content Management Interoperability Services (CMIS)

  5. Content Search Services (CSS)

  6. Task Manager (TM)

  7. IBM Enterprise Records (IER)

  8. IBM Content Collector for SAP (ICCSAP)

Let’s get started with validating your FNCM deployment the right way!

Prerequisites:

  • Operating System: Windows, Linux, or macOS

  • FNCM on Container deployment on Red Hat OpenShift.

  • OpenShift Client

Environment Setup

Before jumping into validation, make sure that your FNCM on Container deployment process has been completed. If you haven’t deployed FNCM on Container yet, you can follow the step-by-step instructions in this blog to perform a deployment: https://community.ibm.com/community/user/blogs/anisha-suresh/2025/07/23/using-fncms-prerequisite-script-for-ocp-deployment.

When Can You Start Validating Your Deployment?

Once you apply your custom resource (CR) file, the FNCM on Container operator compares the desired state defined in the CR with the current state of the cluster. It then begins deploying the necessary components to align the actual state with the intended configuration.

At the end of a complete reconciliation cycle, the operator performs the following:

  • Updates the component statuses in the CR.

  • Creates three ConfigMaps:

    • fncmdeploy-fncm-access-info

    • fncmdeploy-initialization-config (init)

    • fncmdeploy-verification-config (verify)

Each ConfigMap serves a specific purpose:

  • Access Info ConfigMap: Contains the endpoint URLs for all deployed components.

  • Initialization ConfigMap (init): Indicates whether each component was successfully initialized. It contains parameters indicating initialization status of components CPE, CSS and Navigator and the number of object stores installed.

  • Verification ConfigMap (verify): Indicates whether each component passed the verification checks.

Note: The init and verify ConfigMaps will only be created if you have enabled Content Intialization and Content Verification during the deployment, corresponding to the sc_content_initialization and sc_content_verification parameters in the CR respectively.

Another way to verify that a reconciliation has completed is by checking whether the generation and observedGeneration fields in the FNCM CR have the same value.

Validating the Deployment Status

To confirm that your deployment is healthy:

  • All pods should be in a healthy state, which typically means they are in either the “Running” or “Completed” phase. Pods in “CrashLoopBackOff” or “Error” indicate that they are not healthy and may require further investigation.

  • The fncmdeploy-fncm-access-info ConfigMap should be fully populated with endpoint information for all deployed components as shown in the image below:

     

  • All values in the init ConfigMap should be set to True and the parameter cpe_os_number should be populated with the number of object stores installed as shown below:

    Initialisation CM

     

  • All values in the verify ConfigMap should be set to True as shown below:

    Verification CM

     

    Note:
    If any of the initialization or verification values are set to False, even after a complete operator cycle, then there may be an issue with the deployment.

  • All the component status values in the status section of the CR should be "Ready" if the component is enabled, otherwise the expected status is “Not Installed”. In case a component fails to deploy, it’s status will show as “Failed”, along with a message explaining the reason for the failure. An example of the status section from CR is given below:

    CR status update

     

  • If the deployment is successful, the conditions section in the CR will show a successful message as shown below. If there is any error in the deployment, a summary of the error will be displayed.

    CR conditions update

     

  • All the endpoints for the deployed components will be updated in the endpoints section of the CR as shown below:

    CR endpoints update

     

If the deployment does not satisfy the above conditions:

  • Check the logs of the ibm-fncm-operator pod for errors.

  • Since the operator is Ansible-based, look for the keyword FATAL in the logs to quickly locate failure points.

  • For a detailed analysis, run the mustgather.py script. It is in the scripts folder in the ibm-fncm-containers GitHub repository: https://github.com/ibm-ecm/ibm-fncm-containers.

Validating Content Platform Engine (CPE)

Content Platform Engine (CPE) is one of the core components of FNCM on Container. It manages all content repository operations — including storing, retrieving, versioning, and securing documents and objects. You can access and manage CPE through the Administrative Console for Content Engine (ACCE).

The URL for accessing the ACCE endpoint is provided in the access-info ConfigMap under the section cpe-access-info, labeled as Content Platform Engine administration.

ACCE endpoint url

To validate CPE functionality, follow the steps below.

Validating ACCE – Object Stores, Index Areas, Connection Points and Isolated Regions

  1. Open the ACCE endpoint URL in your browser.

  2. Log in using the appLoginUsername and appLoginPassword credentials from the ibm-fncm-secret.

  3. Once logged in, you should be able to view the P8 Domain, as shown below:


    The FileNet P8 Domain is the core content application within CPE. It represents a logical grouping of physical resources and the CPE servers that provide access to those resources.

  4. In the left-hand navigation pane, click Object Stores.


  5. Select the object store that was created. You can now view and edit the object store details as shown below:


    An Object Store is a repository that stores, manages, and provides access to metadata and content objects such as documents, folders, class definitions, and property templates.

  6. Once the object store is loaded, expand the Administrative section in the left-hand menu, click Index Areas, and select the created index area.

  7. Verify that the Index Area is created successfully.

    An Index Area is a logical storage area within the P8 Domain that holds full-text indexes created by Content Search Services (CSS). These indexes enable content-based (full-text) search functionality.

  8. Next, expand the Workflow System node and click Connection Points.

  9. If you have enabled workflow in your CR, ensure that a Connection Point is created.


  10. Expand the Isolated Regions section.

  11. Verify that an Isolated Region has been created successfully.

Validating Object Store Browse

  1. Inside the object store, expand the Browse section in the left-hand menu and open the Root Folder.

  2. By default, you can view the documents in the object store.

  3. To view folders, choose the Show Folders option from the dropdown menu as shown below:


Creating a New Folder

  1. To create a folder, click on the Actions button for the root folder and select New Folder from the menu.

  2. A New Folder tab will open. Enter the desired folder name in the Folder name field and click Next.


  3. In the next tab, you can configure folder object properties such as Teamspaces, Entry Templates, and others. Click Next when done.


  4. In the following tab, set the Retention Properties for your folder—this determines how long the folder object will be retained. Click Next.


  5. Review the Summary of your folder creation and click Finish.


  6. Once the folder is created successfully, a confirmation message will be displayed. You can open the folder directly from the success page.



Creating a New Document

  1. Open the folder you just created.

  2. Click the Actions button for the folder created and select New Document from the menu.

  3. A New Document tab will open. Enter the desired document name in the Document title field and click Next.

  4. In the Content Elements tab, you can upload a document in formats such as PDF, DOCX, or XLSX. Click the Add button.

  5. The Add Content Element dialog will open. Click Browse, select your file, and then click Add Content.

  6. Once uploaded, you’ll see the document name and MIME type updated. Click Next.


  7. Configure Document Object Properties as required and click Next.


  8. Configure Version Properties and click Next.

  9. Set Retention Properties for the document to specify how long it should be kept, then click Next.


  10. Configure Advanced Features such as Storage Area, Storage Policy, Security Policy and others if applicable. Click Next.

  11. Review the Summary and click Finish to complete document creation.


  12. A success message will confirm that the document was created successfully. You can open it directly from the confirmation screen.

  13. The document will now appear in your folder as shown below.

Note: 

You can later use these uploaded documents to verify content search or indexing functionality in Content Search Services (CSS).

Validating Additional CPE Endpoints

In addition to the ACCE interface, you can also verify CPE health and connectivity using the built-in Health Check and Ping endpoints.

Validating the CPE Health Check Page

The CPE Health Check page is a built-in diagnostic endpoint that verifies whether the CPE application and its dependent components are running and accessible. It provides a lightweight HTML status page that performs checks on key subsystems such as:

  • Global Configuration Database (GCD)

  • Directory Configuration (LDAP)

  • Connection Points

  • Object Stores

  • Storage Areas

  1. The CPE Health Check endpoint URL can be found in the access-info ConfigMap under the cpe-access-info section, labeled as Content Platform Engine health check.


  2. Open the Health Check URL in a browser and verify that the page loads without errors.


  3. From this page, you can also explore additional linked endpoints — for example, the Global Configuration Database (GCD) endpoint:


Validating the CPE Ping Page

The CPE Ping Page is another lightweight diagnostic endpoint that verifies whether the CPE application and its web server are responsive. It provides detailed configuration information useful for troubleshooting — including build versions, component details, and environmental configuration values.

  1. The CPE Ping page URL is also available in the access-info ConfigMap under the cpe-access-info section, labeled as Content Platform Engine ping.


  2. Open the Ping page URL in a browser and confirm that it loads successfully and displays configuration details.


Validating IBM Content Search Services (CSS)

IBM Content Search Services (CSS) is a scalable search component used with IBM FileNet Content Manager to enable indexing of documents and full-text searching capabilities. It allows users to search within document content, not just metadata, by processing and indexing documents for content-based retrieval.

You can verify that CSS is functioning correctly by performing search operations in ACCE using the following steps.

  1. Open the ACCE endpoint.

  2. Navigate to the object store where you want to perform the CSS verification.

  3. In the Object Store, click on Search in the left-hand menu. This opens the Saved Searches tab. Click New Object Store Search.


  4. The Object Store Search tab opens in Simple View. Switch to SQL View as shown below:


  5. The SQL View displays a default query that retrieves document metadata from the Document class. You can execute this default query to verify that metadata retrieval and indexing mechanisms are working correctly.



    Note: 

    The default query is not content-based — it simply retrieves up to 1000 documents’ metadata (such as creation, modification, versioning, and retention information) from the Document class. Use this query to confirm that metadata indexing and document access are functioning as expected.

  6. To validate full-text search, replace the existing query with the following:

    SELECT d.This, d.id, d.DocumentTitle
    FROM [Document] d
    INNER JOIN contentsearch c
    ON d.this = c.queriedobject
    WHERE (contains(content, 'Test'))
    

This query retrieves the document object, the GUID and the title of all Document class objects in the Object Store whose content contains the word “Test.”

Note: 

The query will only return results if at least one document actually contains the word “Test” in its content. You can temporarily upload such a document for testing purposes. For steps on uploading documents, refer to the section Validating Content Platform Engine (CPE) above.

Validating IBM Content Navigator (ICN)

IBM Content Navigator (ICN) is a web client that provides users with a unified interface to access, search, and collaborate on content across multiple content servers and repositories. It also supports the creation of teamspaces — focused work areas that organize documents, folders, and searches relevant to a team’s tasks, improving collaboration and efficiency.

The URL for accessing the ICN endpoint is provided in the access-info ConfigMap under the section navigator-access-info, labeled as Business Automation Navigator for FNCM.


Use this URL to open the ICN home page. To validate that your ICN component is functioning correctly, follow the steps below.

  1. Click the hamburger menu (☰) in the top-left corner and select Administration to open the Administration page.


  2. On the Administration page, the left pane displays various administrative options. Click Desktops to view or edit the available desktops.

  3. Ensure that an admin desktop exists. If Content Verification is enabled, additional desktops are automatically created based on the verify_configuration.vc_icn_verification configuration specified in the deployed CR.


  4. Default Desktop

    • You can view all available desktops in this section. The default desktop, which loads automatically when you access the Navigator endpoint, is indicated by a blue icon, as shown below:

    • To load a non-default desktop, append ?desktop=<desktop_id> to the Navigator URL. For example, in the image above, desktop2 is the default desktop. To load desktop1, use:

      https://navigator-namespace.apps.hostname.com/navigator/?desktop=desktop1

    • To change the default desktop, click the desired desktop and then click Edit.

    • In the desktop settings window, open the General tab and scroll down to the Additional Settings section.

    • In this section, enable the checkbox labeled Set as the default desktop, and then click Save and Close.

    • An information pop-up appears, prompting you to refresh the page to use the changed default desktop.

    • After refreshing, you can see that the default desktop has been updated:



  5. Next, click Repositories in the left pane to open the Repositories tab. This section lists all repositories configured in ICN. When Content Verification is enabled, repositories are automatically created based on the verify_configuration.vc_icn_verification configuration in the CR.


  6. Optionally, you can create additional repositories and associate them with specific desktops from this interface.

  7. To explore repository content, click the hamburger menu (☰) again and select Browse. The Browse page allows you to view and manage folders and documents, as well as create new folders and upload files in various formats (PDF, Excel, Word, etc.).


  8. Selecting a document opens it in the IBM Daeja ViewONE.

  9. You can test ICN functionality by creating folders, uploading different types of documents, and verifying that they open correctly in the Daeja ViewONE.

Validating Task Manager (TM)

IBM Task Manager (TM) is a component that automates and schedules tasks such as document exports or data cleanup operations. It can execute tasks immediately, at a specific time, or on a recurring schedule, and also provides a framework for defining custom tasks.

You can locate the Task Manager endpoint in the access-info ConfigMap under the key taskmanager-access-info, labelled as Task Manager, as shown below:


To validate the Task Manager:

  1. Open the TM endpoint URL in a browser and ensure the page loads without any errors.

  2. Once loaded, verify that the page displays the following sections: - User Roles - Task Manager Server Parameters - Database Statuses

If you plan to integrate TM with IBM FileNet—for instance, to schedule background tasks—you must configure it in IBM Content Navigator (ICN) as described below.

Configuring Task Manager in IBM Content Navigator (ICN)

  1. Open the Navigator endpoint and log in when prompted.

  2. Click the hamburger menu (☰) in the top-left corner and select Administration.

  3. In the Administration panel, click Settings in the left-hand menu. After a few seconds, the Settings tab opens.

  4. Scroll down to the Task Manager Configuration section in the General tab.


    Perform the following steps:

    • Enable the Task Manager service by checking the Enable box.

    • Enter the TM Service URL. It usually follows the format:

      https://<tm_service_name>.<namespace>.svc:<port>/taskManagerWeb/api/v1
      

      To get the service name, run:

      oc get svc | grep tm
      

      Example output:

      In this example:

      • Service name: fncmdeploy-tm-svc
      • Port: 9443
      • Namespace: test

      So the full URL becomes:
      https://fncmdeploy-tm-svc.test.svc:9443/taskManagerWeb/api/v1
      1. Specify the TM log directory as:

        /opt/ibm/wlp/usr/servers/defaultServer/logs
        
      2. Enter the Task Manager Admin Credentials, typically the same as the ICN admin credentials found in the ibm-ban-secret.

      3. Click Save and Close button at the top of the page.

        If the configuration is saved successfully, an informational pop-up appears prompting you to restart the application.

         
      4. Reload the Navigator page once prompted.

      Note: 

      If you are not able to configure the Task Manager or cannot set the Task Manager ID, try rotating the keys by following this technote on troubleshooting crypto errors: https://www.ibm.com/support/pages/troubleshooting-crypto-errors-ibm-content-navigator

    • After reloading, navigate to Administration → Repositories. This tab lists all repositories configured in ICN.

    • Click on the repository connected to your current desktop where you want to configure TM and click the Edit button


    • This opens the repository settings. To edit or view the settings, you need to first connect to the repository.

      • Click Connect to establish a connection.


      • You will be prompted for the repository credentials, which is usually same as the ibm-ban-secret credentials.

      • Once connected, you can edit the repository settings.

    • Open the Configuration Parameters tab and locate the Task Manager Connection ID setting.

      • Click Set and log in when prompted.


    • Once logged in successfully, you will be able to see the TM connection ID is set as shown in the image below. You can also clear it by clicking on the Clear button to the right.


    • Scroll down to Optional Features section.


    • Enable Teamspace Management
      • Enable the checkbox.
      • You will be prompted with additional settings for teamspace management
        • Check the box labelled as Allow owners to modify the roles of existing teamspaces
        • Check the box labelled as Enable owners to delete teamspace, including contents


    • Enable Entry Template Management


    1. Click on Save and Close button to save all these changes. An information pop-up appears mentioning to refresh the browser to use the updated data.

    2. Refresh the browser to apply the changes.

    3. Once the page is refreshed, navigate to Administration → Desktops, select your desktop, and click Edit.

    4. The desktop settings will be opened, navigate to the Layout tab as shown:


    5. There you can see the Displayed Features settings and a Feature List. Select the features Teamspaces, Entry Template Manager, and Asynchronous Tasks.


    6. Click on Save and Close button.

    7. You will see an information pop-up prompting you to refresh the browser to use the updated default desktop.

    8. After refreshing, open the hamburger menu (☰) again. You should now see new feature options available:


    You have now successfully configured and validated the Task Manager in IBM Content Navigator. You can manage teamspaces, entry templates, and schedule asynchronous tasks directly from the ICN.

    Validating GraphQL

    GraphQL is an open-source query language, and IBM leverages it across various solutions—particularly within its API management and integration offerings. In IBM Content Services, the GraphQL API provides a flexible interface to interact with the content platform, enabling you to query, retrieve, and shape content data efficiently.

    You can find the GraphQL endpoint in the access-info ConfigMap, under the key graphql-access-info labelled as Content Services GraphQL, as shown below:


    To begin validation, first verify the GraphQL ping endpoint, which displays the version details of the deployed GraphQL image.

    • To access the ping endpoint, append the route /ping to your GraphQL endpoint from the access-info ConfigMap. For example: https://graphql-namespace.apps.hostname.com/content-services-graphql/ping

    • Open this URL in your browser and ensure that the GraphQL version details are displayed without any errors, as shown below:


    If you have enabled GraphQL, by setting the parameter enable_graph_iql: true in the graphql configuration section of the CR as given below,

    ecm_configuration:
      graphql:
        graphql_production_setting:
          enable_graph_iql: true
    

    then you can verify GraphQL functionality by following the steps below.

    1. Load the GraphQL endpoint URL in your browser

    2. When prompted, enter your appLogin credentials.

    3. The GraphiQL interface should load, displaying options such as Run and Prettify for executing and formatting queries.


    4. Fetch Object Store Details

      Run the following query to retrieve information about a specific object store:

      {
        _apiInfo(repositoryIdentifier: "OBJECT_STORE_NAME") {
          buildDate
          implementationVersion
          buildNumber
          productVersion
          implementationTitle
          cpeInfo {
            cpeURL
            cpeUser
            repositoryName
          }
        }
      }
      

      Note: 

      Replace the placeholder OBJECT_STORE_NAME with your actual object store.

    • Copy and paste the query into the GraphiQL editor and click Run.

    • The query will return details about the specified object store, as shown below:


    1. Create a Folder in the Object Store

      Next, run the following mutation to create a folder in your object store

      mutation {
        createFolder (
          repositoryIdentifier: "OBJECT_STORE_NAME"
          folderProperties: {
            name: "FOLDER_NAME"
          }
        )
        {
          className
          id
          name
          creator
          dateCreated
          lastModifier
          dateLastModified
          pathName
          properties(includes: ["IsHiddenContainer", "DateCreated", "Creator"]) {
              id
              label
              type
              cardinality
              value
              }
        }
      }
      

      Note: 

      Replace the placeholder OBJECT_STORE_NAME with your actual object store and FOLDER_NAME with the name of folder you want to create.

    • Paste and run the mutation in the GraphiQL editor.

    • This will create a folder with the given name in the object store.

    • If the folder creation is successful, it will display the folder details similar to the example below:


    • If the folder creation fails due to some reasons, it will display the details on the failure. For instance, if the object store does not exist, it displays the output as shown below, mentioning the Repository does not exist.


    1. Create a Document in the Folder

      Finally, execute the following mutation to create a document inside the folder you created:

      mutation {
        createDocument(repositoryIdentifier: "OBJECT_STORE_NAME"
          classIdentifier: "Document"
          documentProperties: {
            name: "DOCUMENT_NAME"
          }
          fileInFolderIdentifier: "/FOLDER_NAME"
          checkinAction: {autoClassify: false, checkinMinorVersion: false}) {
          className
          id
          name
          isReserved
          isCurrentVersion
          isFrozenVersion
          isVersioningEnabled
          majorVersionNumber
          minorVersionNumber
          versionStatus
          reservationType
          cmIsMarkedForDeletion
          updateSequenceNumber
          accessAllowed
          contentElementsPresent
          contentSize
          mimeType
          dateContentLastAccessed
          contentRetentionDate
          currentState
          isInExceptionState
          classificationStatus
          indexationId
          cmIndexingFailureCode
          compoundDocumentState
          cmRetentionDate
          properties(includes: ["DocumentTitle"]) {
            id
            label
            type
            cardinality
            value
          }
        }
      }
      

      Note: 

      Replace the placeholders OBJECT_STORE_NAME, FOLDER_NAME, and DOCUMENT_NAME with your actual object store, folder name, and desired document name.

    • Paste and execute the mutation in the GraphiQL editor.

    • On success, it will display the details of the newly created document, as shown below:


    • If the document creation fails, the error details will be displayed in the output panel, similar to the folder creation example above.

    1. If successful, you can view the created the folder and document from ACCE as well as Navigator:

    • In ACCE, navigate to Browse ⇒ Root Folder, to view the folder created and then click on the folder to view the document created as shown below:

    • In Navigator, click on the hamburger menu in the top-left corner and navigate to Browse ⇒ your object store repository, to view the folder created and then click on the folder to view the document created as shown below:


    By completing the above steps, you can validate:

    • The availability and version of the GraphQL service (via the /ping endpoint)

    • Connectivity to the object store (via the _apiInfo query)

    • Successful CRUD operations through GraphQL (creating folders and documents)

    This ensures that the GraphQL integration within IBM Content Services is functioning as expected.

    Validating IBM Enterprise Records (IER)

    IBM Enterprise Records or IER is a records management solution for both electronic and physical documents. It provides content, processes and connectivity to create and maintain accurate, secure, and reliable records for both electronic and physical information.

    You can locate the IER endpoint in the access-info ConfigMap under the key ier-access-info, as shown below:


    To validate IER:

    1. Load the IER endpoint

    2. Ensure that the IERApplicationPlugin.jar file downloads successfully.


    Validating IBM Content Collector for SAP (ICCSAP)

    IBM Content Collector for SAP or ICCSAP provides archiving capabilities for SAP business systems. This includes document archiving, data archiving, and print list archiving, helping to manage enterprise content within an SAP environment.

    You can locate the ICCSAP endpoint in the access-info ConfigMap under the key ICCSAP-access-info, labelled as Content Collector for SAP Plugin URLr, as shown below:


    To validate ICCSAP:

    1. Ensure the endpoint loads without any errors, as shown below:


    2. Click on iccsapPlugin.jar and verify that the file downloads successfully.

    3. Click on iccsapTasks.jar and ensure that the file also downloads successfully.


    Tips

    1. You can easily check for errors in the ibm-fncm-operator logs using the keyword FATAL.

    2. To access the complete operator logs for both the latest and previous reconciliation cycles, navigate to the following path inside the fncm-operator pod:

      /tmp/ansible-operator/runner/fncm.ibm.com/v1/FNCMCluster/<your-namespace>/fncmdeploy/artifacts

    3. You can obtain detailed information about your deployment by running the mustgather.py script available in the ibm-fncm-containers repository.

    4. If any pod is in a CrashLoopBackOff or Error state, inspect the pod’s Events using the command below or directly check the Events section in the OpenShift Console:

      oc describe pod <pod-name>

      The Events section often provides details about the cause of the failure, which can help in troubleshooting.

    5. If issues occur during CPE initialization or Navigator initialization (as indicated in the operator logs), check the corresponding component deployment pods for errors in their logs. You can also retrieve detailed logs for the product components from these pods for deeper investigation.
       


    Thanks for reading!
    Stay tuned for our next post.

    Happy deploying and validating!


    Credits

    Author: Anisha Suresh

    Reviewer: Jason Kahn

    1 comment
    31 views

    Permalink

    Comments

    Tue January 06, 2026 02:34 PM

    Thank-you VERY much!  This is a well documented post install checklist!

    Global message icon