feat(export-ttps-file-navigator): migrate connector to manager-supported mode (#7220) - #7319
Conversation
|
🔴 Connector Linter errors detected
|
There was a problem hiding this comment.
Pull request overview
This PR migrates the internal-export-file/export-ttps-file-navigator connector to “manager-supported” mode by switching configuration loading to connectors-sdk Pydantic settings, updating container startup behavior, and adding generated configuration metadata for the connector catalog.
Changes:
- Introduces a Pydantic settings model (
ConnectorSettings) based onconnectors-sdkand wires it intoOpenCTIConnectorHelperviato_helper_config(). - Updates container/runtime assets for manager-supported mode (remove
entrypoint.sh, run viaCMD, setmanager_supported: true). - Normalizes sample deployment/config files and adds generated config schema + docs in
__metadata__.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| internal-export-file/export-ttps-file-navigator/src/settings.py | Adds connectors-sdk-based Pydantic settings model for OpenCTI + connector config. |
| internal-export-file/export-ttps-file-navigator/src/requirements.txt | Adds pydantic and connectors-sdk dependency for the new settings approach. |
| internal-export-file/export-ttps-file-navigator/src/export-ttps-file-navigator.py | Replaces manual config.yml parsing with ConnectorSettings().to_helper_config(). |
| internal-export-file/export-ttps-file-navigator/src/config.yml.sample | Updates sample config values/placeholders and removes deprecated keys. |
| internal-export-file/export-ttps-file-navigator/src/init.py | Exposes ConnectorSettings for module-level import. |
| internal-export-file/export-ttps-file-navigator/entrypoint.sh | Removes shell entrypoint in favor of manager-supported CMD execution. |
| internal-export-file/export-ttps-file-navigator/Dockerfile | Switches startup to WORKDIR + CMD ["python3", "..."]. |
| internal-export-file/export-ttps-file-navigator/docker-compose.yml | Updates env var placeholders and removes deprecated config entries. |
| internal-export-file/export-ttps-file-navigator/metadata/connector_manifest.json | Flags connector as manager_supported: true. |
| internal-export-file/export-ttps-file-navigator/metadata/connector_config_schema.json | Adds generated connector configuration JSON schema for catalog/manager usage. |
| internal-export-file/export-ttps-file-navigator/metadata/CONNECTOR_CONFIG_DOC.md | Adds generated human-readable configuration documentation. |
Suppressed comments (1)
internal-export-file/export-ttps-file-navigator/src/settings.py:27
- This connector exports data, but the
scopefield description says "importing". This text is propagated into the generated schema/docs, so it should be corrected at the source model.
scope: ListFromString = Field(
default=["application/vnd.mitre.navigator+json"],
description="The scope or type of data the connector is importing, either a MIME type or Stix Object (for information only).",
)
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #7319 +/- ##
===========================================
+ Coverage 35.64% 85.42% +49.78%
===========================================
Files 2048 4 -2044
Lines 125310 652 -124658
===========================================
- Hits 44672 557 -44115
+ Misses 80638 95 -80543 📢 Thoughts on this report? Let us know! 🚀 New features to boost your workflow:
|
Pauline Eustachy (Powlinett)
left a comment
There was a problem hiding this comment.
LGTM (build.env doesn't need update as it already uses the right entrypoint file path)🌻
…supported migration
…r manager-supported mode
…rate config schema (#7220) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
0d369bb to
cb6b4a4
Compare
Proposed changes
config.yml/os.environloading with Pydantic settings (src/settings.py) built onconnectors-sdk'sBaseConnectorSettingsandBaseInternalExportFileConnectorConfig, and feedOpenCTIConnectorHelperviato_helper_config().manager_supportedin__metadata__/connector_manifest.jsonand generate__metadata__/connector_config_schema.json+CONNECTOR_CONFIG_DOC.mdfrom the settings model.config.yml.sampleanddocker-compose.yml: drop the removedconfidence_level, comment out optional keys (type,log_level) and useChangeMeplaceholders.entrypoint.shand run the connector directly throughCMDin the Dockerfile, as required for manager-supported connectors.scopedefault asapplication/vnd.mitre.navigator+jsonin the settings model instead of relying on the environment.Related issues
Checklist
Further comments
The file structure, module names and class names are unchanged on purpose: this is a structure-preserving migration limited to configuration handling, so the diff stays reviewable against the previous behaviour.
Risk — breaking config change.
CONNECTOR_CONFIDENCE_LEVELis no longer read, andentrypoint.shis gone, so existing deployments that override the entrypoint must be updated. No data migration.Testing. No automated tests: this connector has no test suite.
black,isortandflake8pass on the changed sources (run via pre-commit). Runtime behaviour has not been exercised against a live OpenCTI instance yet.Point for reviewers.
InternalExportFileConnectorConfig.idnow carries a hardcoded default UUID. That means any deployment omittingCONNECTOR_IDwill share the same connector identity in OpenCTI — please confirm this is the intended convention for manager-supported connectors.Screenshots
Display on OpenCTI

Connector running
