Open data portal requirements checklist

A practical checklist of functional, hosting, identity, privacy, integration and operational requirements for a self-hosted open data portal, with how to verify each one before you choose a platform.

On this page

How to use this open data portal requirements checklist

This checklist turns requirements into verifiable tests. Each item states what the portal must do, how a reviewer can check it on a running instance, and what evidence to keep. A team that must publish open data from its own cloud account, data center or air-gapped network needs to compare self-hosted options on the same terms, and a requirement that cannot be tested will be scored on demo polish instead. CKAN is the reference platform used throughout this page because it is the most widely deployed open-source data portal software, licensed under the GNU Affero General Public License v3.0. The other requirements apply to any candidate, whether it is CKAN or another self-hosted option, so keep the test wording unchanged when you evaluate alternatives.

Group the items by the six areas on this page: functional must-haves, hosting and data residency, identity and access, privacy and retention, integrations, and operations and support. Assign one owner per group before anyone runs a test. The owner is usually the person who will answer for the outcome in an audit or public request, such as the open data lead for publishing workflows, the security architect for identity and hosting, and the records or privacy officer for retention. Mark each item as a must-have when failing it would stop the portal from meeting a legal or policy duty, and as a should-have when it reduces effort or risk but a workaround exists. Record the decision and the reason next to each score, so that a later change in law or staffing does not reopen the whole comparison.

Functional open data portal requirements and how to verify them

This table lists the functions a self-hosted open data portal must provide, why each matters to publishers and data users, and a concrete step to verify it in a candidate platform. Use it as a test script during evaluation: run each verification on a sample dataset before accepting any vendor or implementation claim. The main takeaway is that most functional gaps only appear when you publish a real CSV resource and query it, so treat a demo as insufficient.

RequirementWhy it mattersHow to verify
Dataset publishing workflowPublishers need drafts, review and release steps so unpublished data never appears publicly by accident.Create a draft dataset as a publisher role, confirm it is hidden from anonymous users, then publish it and check visibility changes.
Metadata schema and custom fieldsCatalog records must carry the fields your legal and reporting duties require, such as owner, update frequency and contact point.Add a custom field to the schema, publish a record using it, and confirm it appears in the dataset page and the API response.
Resource upload and linked dataPublishers often host files on their own servers or link to external sources, and both must be catalogued the same way.Upload one CSV file and add one external URL resource to the same dataset, then confirm both download correctly.
DataStore or Data API for structured dataUsers need to filter and query tables without downloading whole files, which is central to usable open data.Push a test CSV into the DataStore and run a filtered query through the Data API. Confirm loading behavior with XLoader in your own environment, since upload and load results vary by setup.
Search and facetingUsers find datasets by organization, format, tag or licence only if facets and full-text search work at your expected catalog size.Index at least a few datasets across two organizations, then filter by format and licence and confirm counts match the records.
Previews of resourcesPreviews let users check a file before downloading it, which reduces support requests about broken or wrong files.Open previews for a CSV, a spreadsheet export and a PDF, and confirm each renders or falls back to a download link.
Bulk downloadResearchers and reusers often need whole datasets in one pass, and the portal must make complete files available.Download the full CSV resource and the full DataStore table, then compare row counts with the source file.
Licence and attribution fieldsReuse depends on a clear licence and attribution statement on every dataset, which many open data regimes expect.Set a licence value and attribution text on a test dataset, then confirm both display on the page and in the API metadata.
Harvesting and API accessCatalogs must exchange metadata with other catalogs and let developers automate access, so both directions need testing.Run a harvest from a sample source catalog and call the package search API with an API token, then confirm records and permissions behave as configured.

Which platform families fit open data portal requirements

CKAN is an open-source data management system built for data hubs and data portals, licensed under the GNU Affero General Public License v3.0. It already provides dataset and resource models, organizations and roles, a search index, and a DataStore for structured resources, so most open data functions start from existing features rather than new code. It fits organizations that publish many datasets, need harvesting and DCAT output, and want a platform that peer public sector portals already run.

  • Catalog model: Confirm that datasets, resources, organizations and custom metadata fields cover your publishing workflow and licensing fields.
  • DCAT output: The ckanext-dcat extension provides DCAT-AP v1, v2 and v3 schemas, RDF endpoints and an RDF harvester. Confirm the profile your national portal expects.
  • DataStore equivalent: The DataStore uses a separate PostgreSQL database with a write user and a read-only user, plus a Data API. Confirm how large tables, query limits and XLoader loading fit your data volumes.
  • Harvesting: Confirm which source catalogs you must pull from or push to, and test them against your metadata.
  • Risks: CKAN minor releases can include backwards-incompatible changes, and the project supports only the latest patch of the current minor and the previous minor. Budget for regular upgrades and extension compatibility checks.

Ask for a written list of the extensions in scope and their supported CKAN versions before you commit.

Security requirements a portal must meet before launch

A public data portal is a web application, an API and a database that often sit on the open internet. The cards below cover the controls a launch review should confirm, from who can publish to how the database is split, and each one names a practical way to check it.

Role-based access for publishers and approvers

Every dataset should have a named owning organization, and only members of that organization should be able to create or edit it. A separate approver role should review new or changed datasets before they become public, so one staff member cannot publish alone. Check this by logging in as a publisher from one organization and confirming that you cannot edit another organization's datasets, then confirm that a draft requires approval before it appears in public search.

Hardening the admin interface and API keys

The sysadmin account and the admin pages should be reachable only from staff networks or through single sign-on with multi-factor authentication. API keys used by harvesters and upload scripts should be scoped to one account, rotated on a schedule, and revoked when a person leaves. Verify by testing the admin URL from outside the network, listing active API tokens, and confirming that a revoked key is rejected on its next request.

Patch cadence tied to CKAN releases

CKAN supports the latest patch of the current minor version and the previous minor version, and an older patch loses support once a newer one ships. The team should agree a written patch window and treat security releases as urgent. Patch releases do not include schema changes or new features, while minor releases can contain backwards-incompatible changes, so upgrades need a staging test first. Ask the implementation partner how it tracks CKAN releases and how long a patch takes to reach production.

Separating DataStore write and read-only users

The DataStore keeps structured resource data in its own PostgreSQL database, and it should use a write user for the loading process and a separate read-only user for the public Data API. The application should never connect to the database with a superuser account. Store both credentials in a secrets manager, not in configuration files in source control. Verify by attempting a write using the read-only credentials and confirming it fails, and by checking that the database superuser password is not present on the web servers.

Logging and audit trails

Keep an audit record of who created, changed, approved, published and deleted each dataset, along with sysadmin actions and API key creation. Logs should be shipped off the portal server to a central store that administrators cannot silently edit, and retention should match your records schedule. Test this by making a change to a test dataset, then confirming the event appears in the central log with a user identity and timestamp. Ask the partner which CKAN events are captured by default and which need custom logging.

Vulnerability testing before launch

Before go-live, run an authenticated and unauthenticated test of the web interface, the Data API and the upload paths, plus a review of the server configuration and the Solr and Redis services, which should not be reachable from the internet. Fix or formally accept each finding in writing, and retest the fixes. Ask for the scope, the tester's method and a written findings report, and confirm that retesting happens after the final configuration is in place.

Hosting, data residency and where the data must live

Hosting model and data residency decide most of the rest of the checklist, so settle them before comparing features. Three broad options usually come up: a public cloud region chosen by the organization, a government data center, or an air-gapped network with no outbound internet access. Each option changes which identity provider can be reached, how software packages and container images reach the servers, how updates are delivered, and whether an external search or email service is allowed. Ask the legal or data protection team to state in writing which jurisdictions and facilities may hold published datasets, draft metadata, user accounts and logs, because the answer narrows the hosting options before any platform is picked.

A CKAN deployment is a set of components, and each one holds data in a different place. The main PostgreSQL database stores the catalog, users and organizations. A separate PostgreSQL database holds DataStore tables, which the Data API queries. Solr holds the search index, Redis holds cache and session data, and file storage holds uploaded resources. Backups copy all of these, often to a different location from the primary. Produce a data flow table that lists each component, the host or region it runs in, its encryption at rest and in transit, who can administer it, and where its backups and snapshots are copied. Ask the platform team and the hosting provider to confirm each row in writing, including any managed database or object storage service that may replicate data outside the chosen region.

The CKAN install from source guide sets the infrastructure baseline. It requires Python 3.10 or newer, PostgreSQL 12 or newer, Solr 9 (recommended) or Solr 8, and Redis, with uWSGI and Nginx recommended for production. The package install guide covers Ubuntu 20.04 and 22.04 64-bit, and source installs are documented for other systems such as Red Hat, Fedora and CentOS. Confirm that the operating system images, container runtime, database versions and Java or Solr support approved by your security team match these prerequisites. In an air-gapped network, also confirm how Python packages, the CKAN source, and Solr and Redis images will be mirrored and scanned, since a missing mirror can block the first installation. Solr and Redis can run from Docker images tagged per CKAN version, which is an option to confirm against your container policy.

Integration requirements for catalogs, identity and analytics

A self-hosted open data portal rarely stands alone. Staff sign in through existing identity systems, metadata has to reach national catalogs, and the datasets feed websites, pipelines and dashboards. Each connection below is a requirement to write down before comparing platforms, along with the items that still need confirmation.

Staff SSO through SAML

Publishers and administrators should sign in with the organization's existing identity provider instead of local portal accounts. Community plugins such as ckanext-saml2auth exist for SAML, but the requirement is not met until you confirm the plugin's supported CKAN version, how it maps identity provider groups to CKAN organizations and roles, and how it handles deprovisioning. Ask the implementation partner to test a leaver scenario before go-live.

DCAT metadata output and harvesting

Metadata should leave the portal in a standard form. The ckanext-dcat extension provides DCAT-AP v1, v2 and v3 schemas, RDF endpoints and an RDF harvester for importing from other catalogs. Confirm which DCAT-AP version and national profile your target catalog expects, and test the output against the validator it uses before committing to field mappings.

Export to national and open government catalogs

Most public bodies must also send dataset records to a central catalog. Write down the target catalog, its accepted format (for example a DCAT-based feed or a data.json file), its update frequency and its harvest schedule. Confirm with the catalog operator whether it pulls from your endpoint or expects a push, since that decides who owns the scheduled job and error handling.

Website and CMS embedding

Dataset pages, search widgets and API documentation often appear on a main website or intranet. Decide whether embedding happens through iframes, server-side includes or a CMS plugin, and check how each approach affects the accessibility and styling obligations of the host site. Agree who maintains the embed code when the portal's templates change in an upgrade.

Webhooks and APIs for data pipelines

Publishers and downstream users need to know when a dataset changes. Ask whether the platform version you choose emits notifications on dataset and resource changes, and whether the CKAN Action API and DataStore Data API cover the read and write calls your pipelines need. For large time series, confirm how the DataStore loads files, since XLoader is the supported loader and DataPusher is legacy.

Monitoring and reporting tools

Operations teams need uptime, error and harvest-job visibility, and reporting teams need usage counts for their own annual figures. Specify which metrics leave the portal, where logs are stored, and whether usage analytics avoid collecting personal data from visitors. Confirm that any analytics tool you add is covered by your privacy notice and retention schedule.

Privacy, retention and access rules to write into requirements

How do we detect and block personal data before a dataset is published?

Detection is a workflow step you design, not a feature you switch on, so write it into requirements as a gate that runs before any dataset becomes public. Require a documented scan of titles, descriptions, resource files and DataStore columns for identifiers such as names, email addresses, national ID numbers and postal addresses, using rules your privacy lead has approved. Make the gate block publication by default and record who cleared each exception. To test it, load a sample dataset with planted dummy identifiers, including values in a CSV column, a free-text description and a resource file name, then confirm the publish step stops and logs the finding. Ask any implementation partner to show the test result, not a description of the scanner.

What retention applies to unpublished drafts and deleted datasets?

Write retention periods for drafts, deleted datasets and their resource files as separate rules, because a portal often keeps them in different places. Your records or legal team sets the periods; the requirement is that each period is written down, enforced by the platform or a scheduled job, and visible in logs. Confirm how the CKAN version you choose handles deletion, purging and removal of files and DataStore tables, since a soft delete may leave data in the database and search index. To test it, create a sample draft and a sample dataset with an uploaded file, delete both, then check the database, file storage, search index and backups against the written schedule. Record what remains and for how long.

How do we separate restricted datasets from open datasets?

Separate them with access rules set per dataset and per organization, not by trusting staff to choose the right folder. Require that restricted datasets are never exposed through the public catalog, search, API, DataStore endpoints or DCAT output, and that the classification is a required field that the publishing workflow checks. Also check derived copies, such as previews, exports and harvested metadata, since a restricted resource can leak through them. To test it, create one open and one restricted sample dataset with identical contents, then query each through the web interface, the API without a token, the DataStore read endpoint and any RDF output as an anonymous user and as a user outside the owning organization. Any leak fails the requirement.

How should access logs be kept, protected and reviewed?

Write requirements for what is logged, where it is stored, how long it is kept and who can read it. At minimum, logs should cover logins, failed logins, dataset creation, edits, deletions, publication changes, permission changes and API token use, with timestamps and the acting account. Store logs outside the application server so an administrator cannot silently edit them, restrict read access to a small named group, and set a retention period your records team approves. Confirm whether the CKAN configuration and any reverse proxy or identity provider write these events by default, because gaps are common. To test it, perform one of each action with a sample account, then check that each event appears in the log store with the correct user and time.

Who approves a dataset release, and how is that recorded?

Define the approval chain in writing before launch: who may create and edit a dataset, who may request publication, and who has the authority to approve it. Most organizations need at least a separation between the publisher and the approver, so one person cannot release a dataset alone. Record the approval in the portal, with the approver's identity, date and the version of the metadata and resources approved. Changes after approval should return the dataset to review unless a documented minor-change rule applies. To test it, run a sample dataset through the full path with two sample accounts, attempt to self-approve, and confirm the platform or workflow blocks it and keeps an audit trail.

Which privacy and access rules need legal review before we build?

Legal interpretation belongs to your counsel and data protection officer, and no portal platform or implementation partner can settle it for you. Ask them to confirm the legal basis for publishing each dataset class, the retention periods that apply, whether any dataset requires anonymization or aggregation before release, and which access rules apply to staff and to the public. Translate their answers into numbered requirements with an owner, a test and an acceptance date. Confirm also whether a data protection impact assessment is required for the portal itself. Keep their written decisions with the requirements document so the build can be audited against them later.

Can our own team write these rules, or do we need a partner?

Your team can write the rules, and most of the work is defining decisions only your organization can make, such as classifications, retention periods and approvers. A partner adds value in turning those decisions into configured controls, scanning rules, logging setup and repeatable tests, and in documenting the evidence. Cost depends on how many dataset classes, organizations and approval paths you have, how much custom scanning you need, and how many test cycles are required before sign-off. Ask any vendor to quote against a written scope listing these controls and tests, and to state which items they will deliver and which your staff must complete.

Operational requirements: upgrades, backups and support

This table lists the operating requirements a self-hosted open data portal must meet after go-live, with the evidence to request for each. Use it to compare vendors and partners on how they will keep the portal patched, recoverable and supported, not only on how it is built.

RequirementWhat to verifyEvidence to request
Upgrade path and version policyWhich CKAN minor and patch versions the plan targets, and how fast the team moves to a new patch. CKAN supports the latest patch of the current minor and the previous minor, and outdated patches lose support once a newer one ships.Written upgrade plan, named target versions and a dated record of past upgrades
Breaking changes between minor releasesCKAN patch releases avoid schema changes and new features, but minor releases may include backwards-incompatible changes. Confirm who tests extensions such as ckanext-dcat before a minor upgrade.Test results from a staging upgrade and a list of custom extensions with their owners
Backup of the PostgreSQL databasesMain catalog database and the DataStore database, both with consistent snapshots and point-in-time recovery if the partner offers it. Confirm the frequency and retention period in writing.Backup schedule, retention settings and the backup tool's configuration
File and uploaded resource backupUploaded resources and any file storage must be backed up with the database so that dataset metadata and files stay consistent after restore.Storage backup policy and an inventory of where uploads are kept
Restore testingRestores are rehearsed on a schedule, including a full portal rebuild from backups and a DataStore-only recovery. Ask for the last test date and the measured recovery time.Restore test log with date, scope, result and time taken
Search index rebuildSolr indexes can be rebuilt from the database. Confirm the rebuild procedure and how long it takes at current catalog size.Runbook entry for index rebuild and a recorded rebuild duration
Monitoring and uptime targetsHealth checks for web, database, Solr, Redis and job workers, plus alerting routes. Uptime targets must be agreed in the contract, not assumed.Monitoring scope, alert list and the uptime target written into the scope of work
Staging environmentA staging copy that matches production configuration and extensions, used to test upgrades, harvesters and metadata changes before release.Environment diagram, sync procedure and a list of differences from production
Documentation and handoverRunbooks for install, upgrade, backup, restore, user administration and incident response, kept current and owned by the client after handover.Document list, version history and handover acceptance record
Support hours and response termsHours covered, severity levels, response and resolution commitments, and who is on call for security patches. Terms should appear in the signed scope or support agreement.Written support terms, severity definitions and escalation contacts

How to score candidates against the checklist

This sequence turns the checklist into a comparison you can defend, moving from requirements gathered across the organization to scripted tests, environment checks and written support terms before a decision is recorded. Each step leaves a document that auditors and procurement teams can review.

  1. Collect requirements from each stakeholder group

    Gather requirements from publishers who will upload and maintain datasets, users who search and download them, the security team, and legal or privacy counsel. Ask each group to describe the workflows they need, the data classes they handle and the rules they must meet, then map every requirement to a checklist section. Done means each requirement has a named owner, a source and a clear pass or fail question that a candidate can answer. Requirements that cannot be tested should be rewritten until they can.

  2. Mark each requirement as must-have or should-have

    Review the consolidated list with the sponsors and classify every item. A must-have is a condition that, if unmet, removes the candidate from consideration, such as a legal publication duty, a hosting location rule or a required identity integration. A should-have improves fit or lowers operating effort but can be traded off. Record the reason for each classification so that later disputes can be traced to a decision. The output is a signed-off requirements register with a classification and an owner for every line.

  3. Run a scripted proof of concept with a sample dataset

    Install the candidate platform in a test environment and load a sample dataset that reflects your real metadata, file formats and sizes, using anonymized or public data where live records are restricted. Script the functional tests for publishing, metadata editing, search, previews, bulk download and the data API, and run the same script against every candidate. Record pass or fail results, error output and any manual workarounds, since workarounds count against the score. The output is a dated test log that anyone can rerun.

  4. Verify hosting and identity in the target environment

    Test the candidate inside the infrastructure where it will run, whether that is your cloud account, a data center or an air-gapped network. Confirm that data stays in the required locations, that backups and logs are stored where policy requires, that the identity provider can sign users in through the protocol you use, and that role mapping for publishers and administrators works as designed. Check outbound network dependencies, since an unexpected external call can fail a residency or air-gap requirement. The output is an environment check sheet signed by the security owner.

  5. Request written support and upgrade terms

    Ask each candidate vendor, community partner or implementation provider for written terms covering security patch handling, upgrade paths between minor and patch releases, backup and restore responsibilities, support hours and escalation, and the process for end-of-support versions. Compare the answers against the project's published release and support policy, and flag any gap between what is promised and what the project documents. Confirm who is paid for each activity and what is included in a fixed-scope agreement. The output is a comparison of written commitments that procurement can attach to the file.

  6. Score candidates and compare results

    Apply the scoring method to each candidate: any failed must-have excludes the candidate, and should-have items are scored on a consistent scale agreed before testing. Compare the scores against the test log, the environment sheet and the support terms, and note where a score rests on a vendor claim rather than a test result. Ask a second reviewer to check a sample of scores to catch inconsistencies. The output is a comparison matrix in which each score links to a piece of evidence.

  7. Document the decision and retain the evidence

    Write a decision record that states the chosen platform, the reasons, the rejected options and the residual risks accepted by the owner. Store it with the requirements register, test logs, environment sheets, support terms and score matrix in a location the audit and procurement teams can access. These artifacts are the evidence trail that auditors and procurement reviewers will ask for when they test how the decision was made. Schedule a review date for the decision record so that changes in requirements or platform support are captured.

What buyers ask before hiring help for an open data portal

How much does a self-hosted open data portal cost to run?

The total depends on four cost lines: hosting, implementation, support and internal staff time. CKAN itself is licensed under the GNU Affero General Public License v3.0, so there is no license fee for the core platform, but the other lines are real. Hosting is paid to your cloud provider or data center and recurs every month. Implementation is a one-time cost paid to whoever installs, configures and integrates the portal. Support and upgrades recur, and they rise with the number of extensions, harvesters and integrations you run. Internal staff time is often the largest hidden line, because data owners must publish and maintain datasets. Ask any partner for a quote that splits these lines separately, states what is one-time and what recurs, and names the assumptions behind each.

How long does it take to launch a CKAN portal?

Duration depends mainly on scope, not on the software. The main drivers are the number of metadata profiles you must support, how many existing data sources need migration or harvesting, whether you need SSO for staff, how many publishing organizations must be onboarded, and how much accessibility testing is required. Installation from source is a defined technical task, and CKAN's install guide lists PostgreSQL, Solr, Redis, uWSGI and Nginx as components to provision. Your hosting approvals and security reviews often set the pace more than the build. Ask for a timeline tied to named milestones and to the deliverables in the written scope, not a single end date.

What must our team provide before implementation starts?

Before work starts, your team should prepare four inputs. First, named data owners for each publishing organization who can approve datasets and licenses. Second, a set of sample datasets in the formats you actually publish, including large files that will be loaded into the DataStore. Third, SSO details for staff accounts, such as the identity provider, the protocol in use and the attributes you need to map. Fourth, hosting access: cloud accounts or data center credentials, network paths, DNS, certificates and backup targets. Missing any of these usually moves dates, so list them as prerequisites in the statement of work.

Can our internal team deploy and run CKAN without a partner?

Yes, a capable platform team can install CKAN from source, and the official documentation covers Ubuntu 20.04 and 22.04 64-bit, with source installs also working on Red Hat, Fedora and CentOS. The harder work is ongoing: tracking CKAN's release policy, applying patches, handling minor releases that may include backwards-incompatible changes, and keeping extensions compatible. CKAN supports the latest patch of the current minor version and the previous minor version, so you must plan upgrades on a schedule. Assess whether your team can keep that cadence, handle security hardening and run tested backups before deciding to build alone.

How do we define a fixed scope for a portal project?

Define scope by listing deliverables, not features. A workable scope names the CKAN version and extensions, the metadata profile and whether it exports DCAT-AP or another schema, the number of organizations and user roles, the integrations (SSO, harvesters, analytics), the DataStore loading method, the hosting environment, the accessibility target, the backup and restore tests, the training sessions and the handover documents. Name what is excluded, such as data cleaning or content migration, and state the acceptance criteria for each item. DeployOpen agrees scope, deliverables and timelines in writing before work starts, so ask any partner to show the same level of detail.

How do we check that a self-hosted platform meets our data residency rules?

Start with the legal requirement, then test the architecture against it. Confirm where the portal, its PostgreSQL database, Solr index, Redis cache, backups and logs will run, and where any third-party services such as email, CDN or monitoring send data. Because CKAN is self-hosted, you control these locations, but extensions and external services may not be. Check the DataStore, which stores structured resource data in a separate PostgreSQL database, and the harvesters, which pull data from other catalogs. Ask your legal or data protection team to confirm the rules, then request a written data flow diagram from any partner and verify it during acceptance testing.

Which CKAN extensions affect residency and metadata exchange?

Extensions change both the data flow and the compliance evidence. The ckanext-dcat extension provides DCAT-AP v1, v2 and v3 schemas, RDF endpoints and an RDF harvester, and it is supported on CKAN 2.10 and 2.11, so confirm compatibility with the CKAN version you choose. The ckanext-saml2auth extension is one option for SAML-based SSO, but it is a third-party project, so review its code, maintenance status and fit with your identity provider before relying on it. Each extension adds upgrade work, so list them explicitly in the scope.

How DeployOpen scopes and delivers an open data portal selection

Choosing a self-hosted open data portal is a sequence of decisions: what the portal must do, where it runs, who signs in, and who keeps it running after launch. DeployOpen works through these in a fixed order, so each card below maps to a checklist area and to evidence the buying team can review.

Written fixed scope before work starts

Every selection begins with a written scope that names the requirements in scope, the deliverables, the environments and the acceptance tests. Teams comparing CKAN with other self-hosted options should ask the partner to show how each checklist item becomes a line in that scope. Confirm which items are excluded, such as legacy data migration or custom harvesters, so the quote reflects the real work.

Requirements mapped to the checklist

Each functional, hosting, identity, privacy and operations requirement is traced to a specific item in the checklist and to a named owner on the client side. This makes gaps visible early, for example a dataset type that needs a separate access tier or a metadata field that must map to a national profile. Ask for the traceability matrix before accepting a platform decision.

Proof of concept in your infrastructure

The proof of concept runs in the client's own cloud account, data center or air-gapped network, not in a vendor sandbox. It loads representative datasets, tests the DataStore and Data API under realistic query load, and checks the search and harvesting paths. Confirm with the partner which sample data, volumes and user roles the proof of concept will use before it starts.

Hardening and security testing

Before go-live, the deployed portal is hardened and tested. That covers the web application and its APIs, the database and search services, and the administrative paths used by publishers. Findings are triaged with the client and retested. Ask whether testing includes the public API endpoints and the write paths that publishers use, not only the public website.

Documentation and compliance evidence

DeployOpen documents the configuration, access model, backup and restore steps, and retention settings, and assembles the operational evidence that an independent auditor or certification body will ask for. DeployOpen prepares this evidence; it does not issue audit reports, attestations or certifications. Ask which controls the evidence pack covers and who on your side signs off each item.

Retainers for upgrades and support

CKAN releases follow a minor-version cadence, and only the latest patch of the current minor and the previous minor receive security and bug fixes. A support retainer covers patch rollouts, minor upgrades with testing, and the monitoring that keeps the portal current. Ask the partner how long a patch is applied after release and what the retainer excludes.

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.