Phase 1.5 Complete: - Add automatic API key generation with secure random generation - Add createParents parameter to create_note tool - Fix authentication vulnerability (auth enabled without key) - Add MCP client configuration snippet generator - Improve UI/UX for authentication management - Add comprehensive test coverage Security: - Fixed critical vulnerability in authentication middleware - Implement three-layer defense (UI, server start, middleware) - Cryptographically secure key generation (32 chars) Features: - Auto-generate API key when authentication enabled - Copy/regenerate buttons for API key management - Recursive parent folder creation for nested paths - Enhanced error messages with actionable guidance - Selectable connection information and config snippets Documentation: - Updated CHANGELOG.md with v1.2.0 release notes - Updated ROADMAP.md (Phase 1.5 marked complete) - Created IMPLEMENTATION_NOTES_AUTH.md - Created RELEASE_NOTES_v1.2.0.md
3.8 KiB
3.8 KiB
Release Notes - Version 1.2.0
Release Date: October 16, 2025
Overview
Version 1.2.0 completes Phase 1.5 of the roadmap, adding enhanced parent folder detection and significantly improved authentication security.
What's New
📁 Enhanced Parent Folder Detection
New createParents Parameter
- Added optional
createParentsparameter tocreate_notetool - Default:
false(safe behavior - requires parent folders to exist) - When
true: automatically creates missing parent folders recursively - Handles deeply nested paths (e.g.,
a/b/c/d/e/file.md)
Improved Error Handling
- Explicit parent folder detection before file creation (fail-fast)
- Clear error messages with
createParentsusage examples - Validates parent is a folder (not a file)
- Better troubleshooting guidance
Example Usage:
// Auto-create missing parent folders
create_note({
path: "projects/2024/reports/Q4.md",
content: "# Q4 Report",
createParents: true
})
🔐 Enhanced Authentication & Security
Automatic API Key Generation
- API keys are now auto-generated when authentication is enabled
- 32-character cryptographically secure keys using
crypto.getRandomValues() - No more weak user-chosen passwords
Improved UI/UX
- Copy to clipboard button for API key
- Regenerate key button with instant refresh
- Static, selectable API key display (full width)
- MCP client configuration snippet generator
- Dynamically includes/excludes Authorization header
- Correct
mcpServersformat withserverUrlfield - Copy configuration button
- Partially selectable text
- Restart warnings when authentication settings change
- Selectable connection information URLs
Security Fixes
- Fixed critical vulnerability where enabling authentication without API key allowed unrestricted access
- Three-layer defense: UI validation, server start validation, and middleware enforcement
- Fail-secure design: blocks access when misconfigured
- Improved error messages for authentication failures
Configuration Example:
{
"mcpServers": {
"obsidian-mcp": {
"serverUrl": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer <your-api-key>"
}
}
}
}
Technical Details
New Files
src/utils/auth-utils.ts- API key generation and validation utilitiestests/parent-folder-detection.test.ts- 15 comprehensive test casesIMPLEMENTATION_NOTES_AUTH.md- Authentication implementation documentation
Modified Files
src/tools/note-tools.ts- EnhancedcreateNote()with parent folder validationsrc/tools/index.ts- Updatedcreate_notetool schemasrc/server/middleware.ts- Enhanced authentication middlewaresrc/main.ts- Server start validationsrc/settings.ts- Complete UI overhaul for authenticationsrc/utils/error-messages.ts- Enhanced parent folder error messages
Testing
- 15 new test cases for parent folder detection
- All tests passing
- Build successful
Breaking Changes
None. All changes are backward compatible.
Upgrade Notes
-
Authentication Users:
- If you have authentication enabled, your existing API key will continue to work
- You can now regenerate keys easily from the settings UI
- Use the new configuration snippet for easy MCP client setup
-
create_note Users:
- Existing code continues to work (default:
createParents: false) - Optionally add
createParents: truefor automatic folder creation
- Existing code continues to work (default:
Documentation
- ✅ CHANGELOG.md updated
- ✅ ROADMAP.md updated (Phase 1.5 marked complete)
- ✅ IMPLEMENTATION_NOTES_AUTH.md created
- ✅ IMPLEMENTATION_NOTES_v1.5.md (parent folder detection)
Next Steps
Phase 2 (API Unification & Typed Results) is next on the roadmap.
Contributors
This release includes improvements to security, usability, and robustness based on real-world usage and testing.