OpenCTI upgrades and support

OpenCTI ships continuous releases and an LTS line that needs its own license key. This page explains how to choose between them, how upgrades are tested against connectors and data, and what ongoing support covers.

On this page

What upgrades and support involve for OpenCTI

An OpenCTI upgrade is never just a web application change. A self-hosted deployment runs the platform, Python workers, connectors, Elasticsearch or OpenSearch, Redis, RabbitMQ and S3-compatible storage, and each of these components has its own version requirements. The documented minimums include Elasticsearch 8.0 or OpenSearch 2.9 or later, Redis 7.1 or later and RabbitMQ 3.11 or later. Before any change is scheduled, the operations owner should inventory every component version in the environment, including each connector image, and confirm which of them the target OpenCTI release supports.

Four events usually start an upgrade. The first is moving between the regular release line and an LTS line, which changes both the version number format and the licensing requirement. The second is an LTS line reaching end of support, which leaves the team with a fixed deadline. The third is a connector or dependency that needs a newer platform or library version to work. The fourth is a security fix. Teams should confirm in the release notes and life cycle documentation which of these applies to their current version before deciding how quickly to act.

Teams with a named operations owner, a staging environment that mirrors production and enough capacity to roll back are often able to handle routine patching in-house. A partner is usually more useful when the upgrade crosses several components at once, when connectors and live data must be tested before cutover, or when the organization wants retained support so that fixes and advice are available between planned upgrades. Ask any partner to show how they would test connector behavior and data migration in a copy of your environment, not only how they would install the release.

What the work includes

An OpenCTI upgrade touches the platform, its workers, every connector and the data stores beneath them. The service breaks that work into the components below, and each one ends in a document or check you keep.

Release channel decision

Choose between regular releases, which ship from daily to weekly, and the LTS line, which is released every 6 months, supported for 1 year and requires a specific LTS license key. We document the choice against your change window, patch tolerance and licensing. Deliverable: a written release channel decision record with the upgrade cadence it implies.

Upgrade assessment of the platform

We compare your running version with the target version and read the release notes for schema, configuration and authentication changes. We check that Elasticsearch or OpenSearch, Redis, RabbitMQ and S3-compatible storage meet the documented minimum versions for the target. Deliverable: a written upgrade assessment with a list of required pre-upgrade changes.

Workers, connectors and dependencies

Python workers and each connector are inventoried with their current and target versions. We build a compatibility matrix for your connectors, flag any that lag the platform release, and confirm worker capacity against the platform node ratio. Deliverable: a version compatibility matrix for your connectors and a dependency map.

Staged upgrade in non-production

We rebuild a non-production environment from a copy of your configuration and a representative data set, then run the upgrade through it end to end. Connector imports, enrichments and exports are tested against the new version before any production change. Deliverable: a staging test report that records results, defects and fixes.

Cutover and rollback plan

The cutover plan sets the order of platform, worker and connector changes, the freeze on new connector runs and the checkpoints where the team decides to continue or stop. The rollback plan states how to restore the previous version and its data state if a checkpoint fails. Deliverable: a written cutover plan and rollback runbook.

Post-upgrade verification

After cutover we check login paths, GraphQL API behavior, worker queues, connector runs and search results against the checklist agreed in staging. Any gap is logged with an owner and a fix or accepted risk. Deliverable: a signed-off verification checklist and a post-upgrade handover note.

Ongoing support tiers

Between upgrades, support covers monitoring of new releases, hotfixes for your LTS line, connector maintenance and dependency updates. Tiers are set by the response and upgrade commitments you need, and they are agreed in a retainer. Deliverable: a written support scope with service levels defined in the retainer.

What drives effort and frequency

This table compares the factors that change how often an OpenCTI installation needs upgrading and how much testing each upgrade requires, with a way to keep each one under control.

DriverWhy it mattersHow to keep it down
Number and type of connectorsImport connectors pull external feeds and enrichment connectors call outside services, so each type carries different upgrade and test exposure.Limit the set to sources you actively use, and give each connector an owner and a regression check.
Number of environmentsEach environment is a separate upgrade target, so one release becomes several rounds of testing and promotion.Keep environments to what the promotion path needs, and automate deployments across them.
Data volume and index sizeLarger indexes take longer to back up, verify and reindex after an upgrade, and they make rollback slower.Set ingestion filters and retention early, and measure index growth before each planned upgrade window.
Custom connectors and playbooksCustom code depends on platform APIs and GraphQL details that can change between releases and must be retested.Keep custom code in version control, and record which platform versions each item was validated against.
Dependency versions (Elasticsearch or OpenSearch, Redis, RabbitMQ, S3 storage)Each dependency has minimum versions, for example Elasticsearch 8.0 or OpenSearch 2.9, Redis 7.1 and RabbitMQ 3.11, and may need coordinated moves.Track the documented minimums, upgrade dependencies in separate tested steps, and confirm compatibility for each target release.
Chosen release lineRegular releases ship daily to weekly, while LTS releases arrive every six months with one year of support, which sets upgrade frequency.Pick one line per environment, plan fixed upgrade windows, and read the release notes before each move.
Enterprise Edition features (SSO, audit logs)Since 7.260224.0, SSO strategies are an Enterprise Edition feature, and SSO and audit log settings need retesting after upgrades.Enable only the Enterprise Edition features you need, and keep their settings documented so they can be re-checked after each upgrade.
Change approval strictnessStrict approval adds review time to every release, including security fixes that may need to land quickly.Agree in advance which change types are standard, so routine releases and hotfixes follow a pre-approved path.

How an upgrade or support engagement runs

The sequence moves an OpenCTI deployment from its current version to a chosen target with a documented inventory, a tested rehearsal, a controlled cutover and a clear handover to whoever runs it next.

  1. Inventory the running installation

    We record the running OpenCTI version, platform and worker images, every connector and its version, the Elasticsearch or OpenSearch, Redis, RabbitMQ and S3-compatible storage versions, authentication strategies, and the data volumes in each. We also confirm which edition and license is in use. The output is a written inventory that the client signs off as complete.

  2. Choose the release line and target version

    We compare the current release cadence with the LTS line and agree a target version with the client. Where the target is an LTS release, the client must hold a valid LTS license key for that line, since LTS images require one. The output is a written decision record naming the target version, the reason for it and the support window it gives.

  3. Review connector and dependency compatibility

    We check each connector and each dependency version against the target OpenCTI release, including any required search engine, Redis, RabbitMQ and storage versions, and flag anything that needs a change first. Connectors that the client builds or customizes are reviewed against the new API. The output is a compatibility matrix with an action for every item, reviewed by the client's platform owner.

  4. Rehearse the upgrade in staging

    We restore a copy of production data into a staging environment that matches production's topology, then run the full upgrade with the same connectors and workers. We measure whether workers drain queues, whether connectors write and whether the search index rebuilds as expected. The output is a rehearsal log with every issue, its fix and a go or no-go recommendation.

  5. Cut over to production with rollback criteria

    Before the change window, the client and DeployOpen agree the rollback criteria in writing, such as failed authentication, stalled worker queues or connector write errors that cannot be fixed in the window. We back up data and configuration, perform the upgrade, and follow the rollback plan if a criterion is met. The output is a cutover record showing the version now running and the backup that was verified.

  6. Run post-upgrade checks

    We verify that users can sign in through every configured authentication strategy, that each connector can write objects and relationships, and that RabbitMQ queues are consumed by the workers without growing backlog. We also confirm the API responds as expected for the client's integrations. The output is a signed checklist with results and any open items.

  7. Hand over and set the support schedule

    We deliver the updated inventory, runbook, rollback notes and known issues, then agree the support schedule, including how patches, hotfixes and the next upgrade will be handled. Support scope and response expectations are set in the written agreement. The output is a handover pack and an agreed support calendar that the client's team can run without us.

What teams keep in-house and what they outsource

This table lists the recurring OpenCTI upgrade and support activities, who usually owns each one, and the skills needed, so you can see where an internal team stops and a partner adds the most value.

ActivityUsual ownerSkills needed
Reading release notes and choosing the release linePlatform owner with threat intelligence lead inputUnderstanding of the regular release cadence versus the LTS line, licensing, and which connectors and features a release touches
Maintaining the connector inventoryConnector owners in the threat intelligence teamKnowing what each feed should produce, its schedule, its credentials, and the data volume it normally creates
Running the staging rehearsalShared: partner leads the cross-stack plan, internal team validates resultsStaging with production-like data, RabbitMQ and Elasticsearch or OpenSearch experience, and a written rollback path
Managing container image and dependency upgradesPlatform engineering or DevOpsContainer orchestration, version compatibility checks for Elasticsearch or OpenSearch, Redis, RabbitMQ and object storage
Validating threat data after upgradeConnector owners and analysts, with partner test scriptsKnowledge of expected entity counts, relationships and enrichment results per feed, plus STIX2 familiarity
Handling security fixes outside the normal windowPlatform owner with on-call engineer; partner on retainer if contractedFast patch testing, change approval under your own policy, and the ability to deploy during off-hours
Daily monitoring of workers, queues and connector healthPlatform engineering operations, with analysts reporting gapsMonitoring of platform nodes, workers, RabbitMQ queues and connector run status; alert tuning

What usually goes wrong

Most OpenCTI upgrade problems come from release choices, dependency drift and connector behavior rather than from the platform itself. The cards below name the failure points we see most often and the checks that prevent them.

Upgrading to regular releases unpinned

Regular releases ship from daily to weekly, so a production connector set that tracks the latest image can change under it without a planned window. Pin the platform and each connector to a tested version, record the exact tags, and promote a new release only after it passes in a staging copy of your connector set.

Lapsed LTS license keys

LTS releases are distributed as container images but require a specific LTS license key to use, and teams often learn this only when a pull or start fails. Confirm who holds the key, when it expires, and which LTS line it covers before scheduling any upgrade, and keep the renewal date on the operations calendar.

Treating stabilization as connector safety

The one-month stabilization period after an LTS release is not a guarantee that every connector works on it. After that period only critical bug and security fixes arrive, so test each connector you run against the candidate version and note any connector that is not yet validated.

Falling off the LTS cadence

LTS releases come every 6 months and each is supported for 1 year, so a team that skips two cycles can find its line out of support. Schedule a yearly review that compares the current LTS line with the one in use and plans the move while the overlap window is still open.

Dependency version mismatches

OpenCTI requires Elasticsearch 8.0 or OpenSearch 2.9 or later, Redis 7.1 or later, and RabbitMQ 3.11 or later. A platform release can raise the floor for these services, so compare the release notes against the running versions of each dependency before the upgrade and upgrade them in a staged order.

Connectors writing unexpected data

After an upgrade, a connector may change how it maps or deduplicates entities, which can create new objects or alter existing relationships in the knowledge graph. Compare entity counts and sample records from a connector run before and after the upgrade, and review the first scheduled imports closely.

SSO lost after moving to Enterprise Edition

Since OpenCTI 7.260224.0, defining and using authentication strategies, including SSO, requires the Enterprise Edition. Teams that move to a line that enforces this can find analysts locked out or falling back to local accounts. Export the current authentication configuration, plan the edition change, and test a login with each strategy before cutover.

No tested rollback for schema changes

Data-schema changes can make a rollback to the previous image unsafe, because the older platform may not read the migrated data. Take a verified backup of the search index and object storage, rehearse restoring it to a copy of the environment, and write down the restore order before the production upgrade starts.

How the work differs by starting point

Regular releases ship when ready, from daily to weekly, and use the x.YYMMDD.z version pattern. The work centers on a repeatable upgrade pipeline, because changes arrive often and each one needs a decision.

  • Set an upgrade cadence the team can sustain and decide which releases move to staging first.
  • Test each upgrade against your connectors, workers and a recent copy of production data.
  • Read the release notes for dependency changes before you pull images.
  • Client provides: a staging environment, a named owner who approves promotion to production, and agreed change windows.

What you need to provide

Before we can plan an upgrade or support scope, we need an accurate picture of what is running today. Provide the exact OpenCTI version and whether it is a regular release (x.YYMMDD.z) or an LTS build (x.YYMMDD.z-lts.n), the deployment method (container images, Helm, or other), and the versions of Elasticsearch or OpenSearch, Redis, RabbitMQ and object storage. Also list every connector with its image or version, its configuration, and the workers that run it. Connector drift is the most common reason an upgrade test fails, so this inventory is the first deliverable we need.

We also need a non-production environment that can host a copy of the platform, and a representative data set. A full copy is preferred, but if production data cannot leave its boundary, provide a sanitized sample that keeps the object types, relationships, marking definitions and volumes that your connectors and playbooks depend on. Testing against an empty instance does not show how an upgrade behaves with your data. Confirm with your data owners what sanitization is permitted before the copy is made.

Provide the OpenCTI license details for the Enterprise Edition features you use, and for any LTS line you run. Confirm with Filigran which LTS line is current and when its end-of-support date falls, using the release notes and product life cycle documentation, and confirm that your LTS license key covers the target version. Name an owner for connectors, identity and threat data quality, since each upgrade decision involves a trade-off that person must accept. Add the change window rules, approval chain and backup and restore evidence you require, including the date of your last tested restore.

Frequently asked questions

How much does an OpenCTI upgrade cost?

The cost follows from the written scope, which we agree before work starts, and we do not publish a price list. The main components are the assessment of your current version and dependencies, a staging build, connector compatibility testing, data checks, cutover, a rollback plan, documentation and handover. Labor is the largest part. Separately, you may need an Enterprise Edition or LTS license from Filigran and infrastructure for a staging environment. Cost rises with the number of connectors, data volume, dependencies to upgrade, custom code and environments. Ask for a quote that separates one-time upgrade work from any recurring support.

How long does an OpenCTI upgrade take to complete?

Timing depends on how far the current version is from the target, how many connectors and dependencies are involved, the data volume, and how quickly staging results are reviewed and approved. Your change approval process and maintenance windows also set the pace. The written scope states the schedule and the milestones it depends on. Ask for the sequence of testing, cutover and hypercare, and which steps you must complete on your side, such as access approvals and sign-off on test results.

Can our own team upgrade OpenCTI without a partner?

Yes, a team can upgrade OpenCTI itself if it has experience with containers, Linux, Elasticsearch or OpenSearch, Redis and RabbitMQ, and it has a staging environment that mirrors production. The team should read the release notes for every version in the path, restore a recent production backup into staging, and test each connector against the new platform. It also needs a verified backup, a tested rollback procedure and an approved window. Check the minimum dependency versions in the deployment overview before you start, and confirm that your license covers the target release.

Should we run OpenCTI LTS or regular releases?

Choose LTS if your team wants fewer upgrades and can test only once or twice a year. Choose regular releases if you need new features quickly and can test often. Regular releases ship when ready, from daily to weekly. LTS releases come every 6 months, each supported for 1 year, with a 6-month overlap between consecutive versions. After a one-month stabilization period, an LTS release receives only critical bug and security fixes. Your decision determines how much test effort you carry each year, so base it on your testing capacity.

Do we need an LTS license key, and what if it lapses?

Yes, OpenCTI LTS releases require a specific LTS license key to use. Confirm in writing with Filigran what happens to a running instance if the key expires, including whether the platform keeps running, whether updates and fixes stop, and what renewal or reinstatement steps apply. We advise confirming these terms before you commit to a version, because they affect your upgrade calendar and budget. We can include license checks and renewal dates in the written scope and in any support agreement.

What does ongoing support cover compared with a one-off upgrade?

A one-off upgrade covers the agreed scope: assessment, staging, testing, cutover and handover, after which the work ends. Ongoing support is a retainer that covers the items you agree in writing, such as monitoring for new releases and fixes, testing updates against your connectors, applying patches, and troubleshooting incidents. Retainers suit teams that want a partner to carry routine change work. Ask for the exact service levels and response scope in the agreement, because DeployOpen does not guarantee specific SLAs unless the written contract says so.

How DeployOpen delivers OpenCTI upgrades and support

DeployOpen plans OpenCTI upgrades as tested changes to a self-hosted platform inside your own infrastructure, covering the platform, workers, connectors and dependencies together. Support is available as a retainer once the upgrade path and operating model are agreed.

How we scope

  • The written scope names your current OpenCTI version, deployment layout and target release, whether a continuous release or the LTS line.
  • Scope lists every connector, worker pool, dependency (Elasticsearch or OpenSearch, Redis, RabbitMQ, object storage) and authentication strategy in use.
  • Scope states which data sets, custom connectors and playbooks must be verified after the upgrade, and who approves the cutover.

How we build

  • We stand up a non-production copy of your OpenCTI environment and run the upgrade there before anything touches production data.
  • We test each connector and import or enrichment job against the target version and record changes in behavior, errors and data volume.
  • We confirm the LTS license key requirement and dependency version compatibility with the vendor documentation before scheduling the change window.

How we hand over

  • You receive an upgrade runbook with pre-checks, the ordered steps, rollback points and post-upgrade verification results.
  • Configuration changes, version pins and connector updates are documented in a form your team can repeat on the next release.
  • A handover session walks your operators through monitoring, log locations and the escalation path for failed workers or dependencies.

How we support

  • Ongoing support is available as a retainer covering scheduled upgrades, patch review and connector compatibility checks.
  • Retainer scope is agreed in writing and states response expectations, which releases are covered and what is excluded.
  • Between upgrades, we review LTS hotfix and release notes against your deployment so your team knows what changes and when to act.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.