Obsidian Connector - Backend Implementation Missing
Summary
The Obsidian connector appears in the UI and can be created via API, but the backend indexing task is not implemented, causing indexing to fail silently.
Environment
- SurfSense Version:
ghcr.io/modsetter/surfsense:latest (as of 2026-02-15)
- Deployment: Docker Compose / Podman
- OS: Fedora 43 Silverblue
Steps to Reproduce
Via UI (Broken)
- Navigate to Connectors dashboard
- Click "Add Connector" → Select Obsidian
- Fill in connector form:
- Connector Name: "Obsidian Vault"
- Vault Path:
/mnt/obsidian
- Vault Name: "My vault"
- Exclude Folders: ".obsidian,.trash"
- Include Attachments: false
- Enable Periodic Sync: true
- Sync Frequency: Every hour
- Click "Connect Obsidian"
- Result: Button does nothing, no network request sent, connector not created
Via API (Partially Works)
- Authenticate via
/auth/jwt/login
- Create connector via
POST /api/v1/search-source-connectors:
{
"name": "Obsidian Vault",
"connector_type": "OBSIDIAN_CONNECTOR",
"is_indexable": true,
"config": {
"vault_path": "/mnt/obsidian",
"vault_name": "My vault",
"exclude_folders": ".obsidian,.trash",
"include_attachments": false
},
"periodic_indexing_enabled": true,
"indexing_frequency_minutes": 60
}
- Result: Connector created successfully (ID: 1)
- Trigger indexing via
POST /api/v1/search-source-connectors/1/index
- Result: Returns success message but indexing fails
Backend Logs
INFO:app.utils.periodic_scheduler:Periodic indexing enabled for connector 1 (frequency: 60 minutes). Triggering first run...
ERROR:app.utils.periodic_scheduler:No task mapping found for connector type: SearchSourceConnectorType.OBSIDIAN_CONNECTOR
WARNING:app.routes.search_source_connectors_routes:Failed to create periodic schedule for connector 1
INFO:app.routes.search_source_connectors_routes:Triggering Obsidian vault indexing for connector 1 into search space 2 from 2025-02-15 to 2026-02-15
The key error: No task mapping found for connector type: SearchSourceConnectorType.OBSIDIAN_CONNECTOR
Expected Behavior
- UI connector form should submit and create the connector
- Backend should have an
index_obsidian_vault task mapped to OBSIDIAN_CONNECTOR type
- Indexing should process
.md files from the vault path and create documents
Actual Behavior
- UI form button is non-functional
- API connector creation succeeds but indexing fails
- No vault files are processed or indexed
Additional Context
Task List Shows Obsidian Task Exists
From Celery worker logs:
[tasks]
. index_obsidian_vault
. index_notion_pages
. index_slack_messages
...
The index_obsidian_vault task is registered, but there's no mapping between SearchSourceConnectorType.OBSIDIAN_CONNECTOR and this task in the periodic scheduler.
Vault Mount Confirmed Working
$ podman exec surfsense ls -la /mnt/obsidian
drwxrwxrwx. 1 root root 48078 Feb 13 23:37 obsidian
The vault is accessible from the container at the configured path.
Workaround
None currently. The connector appears to be a work-in-progress feature.
Suggested Fix
- UI Fix: Ensure the "Connect Obsidian" button submits the form and calls the API
- Backend Fix: Add task mapping in
app/utils/periodic_scheduler.py:
SearchSourceConnectorType.OBSIDIAN_CONNECTOR: index_obsidian_vault
- Implement
index_obsidian_vault task if it doesn't already have the logic to:
- Read files from
config['vault_path']
- Parse
.md files with YAML frontmatter
- Extract wiki links
[[note]] and tags #tag
- Respect
exclude_folders config
- Create documents in the search space
Related
- Obsidian is listed as a supported connector in README
- Other connectors (Notion, Slack, etc.) work correctly
- This suggests Obsidian implementation is incomplete
Would appreciate any guidance or timeline for when this connector will be fully functional!
Obsidian Connector - Backend Implementation Missing
Summary
The Obsidian connector appears in the UI and can be created via API, but the backend indexing task is not implemented, causing indexing to fail silently.
Environment
ghcr.io/modsetter/surfsense:latest(as of 2026-02-15)Steps to Reproduce
Via UI (Broken)
/mnt/obsidianVia API (Partially Works)
/auth/jwt/loginPOST /api/v1/search-source-connectors:{ "name": "Obsidian Vault", "connector_type": "OBSIDIAN_CONNECTOR", "is_indexable": true, "config": { "vault_path": "/mnt/obsidian", "vault_name": "My vault", "exclude_folders": ".obsidian,.trash", "include_attachments": false }, "periodic_indexing_enabled": true, "indexing_frequency_minutes": 60 }POST /api/v1/search-source-connectors/1/indexBackend Logs
The key error:
No task mapping found for connector type: SearchSourceConnectorType.OBSIDIAN_CONNECTORExpected Behavior
index_obsidian_vaulttask mapped toOBSIDIAN_CONNECTORtype.mdfiles from the vault path and create documentsActual Behavior
Additional Context
Task List Shows Obsidian Task Exists
From Celery worker logs:
The
index_obsidian_vaulttask is registered, but there's no mapping betweenSearchSourceConnectorType.OBSIDIAN_CONNECTORand this task in the periodic scheduler.Vault Mount Confirmed Working
$ podman exec surfsense ls -la /mnt/obsidian drwxrwxrwx. 1 root root 48078 Feb 13 23:37 obsidianThe vault is accessible from the container at the configured path.
Workaround
None currently. The connector appears to be a work-in-progress feature.
Suggested Fix
app/utils/periodic_scheduler.py:index_obsidian_vaulttask if it doesn't already have the logic to:config['vault_path'].mdfiles with YAML frontmatter[[note]]and tags#tagexclude_foldersconfigRelated
Would appreciate any guidance or timeline for when this connector will be fully functional!