obsidian-security-basics

Featured

Implement secure Obsidian plugin development practices. Covers credential storage, input validation, XSS prevention, network security, URI handler safety, and Electron security. Use when handling user data, storing API keys, making network requests, or preparing for community plugin submission. Trigger with phrases like "obsidian security", "secure obsidian plugin", "obsidian data protection", "obsidian privacy", "obsidian api key storage".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Obsidian Security Basics ## Overview Security practices for Obsidian plugin development. Plugins run with full vault filesystem access and can make arbitrary network requests inside Electron. Responsible development requires protecting credentials, sanitizing external data, validating URI handlers, minimizing permissions, and following Obsidian's plugin guidelines to avoid community submission rejection. ## Prerequisites - Obsidian plugin development environment - Understanding that `.obsidian/plugins/<id>/data.json` is synced by cloud services - Awareness of [Obsidian Plugin Guidelines](https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines) ## Instructions ### Step 1: Credential Storage — Never in data.json Plugin settings (`data.json`) live inside the vault and are synced by iCloud, Dropbox, Obsidian Sync, and Git. API keys stored here are effectively public. ```typescript // BAD: API key stored in plugin settings (synced to cloud, committed to Git) interface BadSettings { apiKey: string; // This ends up in .obsidian/plugins/my-plugin/data.json } // GOOD: Use Electron's safeStorage for desktop (encrypted at OS level) import { Platform } from 'obsidian'; export class SecureStorage { private plugin: Plugin; constructor(plugin: Plugin) { this.plugin = plugin; } async storeSecret(key: string, value: string): Promise<void> { if (Platform.isDesktopApp) { // Electron's safeStorage uses OS keychain (Keychain on macOS, DPAPI on Windows) con...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

Data & Documents Solid

obsidian

Comprehensive guidelines for Obsidian.md plugin development including ESLint rules from eslint-plugin-obsidianmd v0.3.0, TypeScript best practices, memory management, API usage (requestUrl vs fetch), UI/UX standards, popout window compatibility, community.obsidian.md submission process, and Scorecard optimization. Use when working with Obsidian plugins, main.ts files, manifest.json, Plugin class, MarkdownView, TFile, vault operations, or any Obsidian API development.

143 Updated 3 days ago
gapmiss
AI & Automation Featured

obsidian-install-auth

Set up Obsidian plugin development environment with Node.js and TypeScript. Use when starting a new plugin project, configuring the dev environment, or initializing Obsidian plugin development from scratch. Trigger with phrases like "obsidian setup", "obsidian plugin dev", "create obsidian plugin", "obsidian development environment".

2,266 Updated today
jeremylongshore
AI & Automation Featured

obsidian-data-handling

Implement vault data backup, sync, and recovery strategies. Use when building backup features, implementing data export, or handling vault synchronization in your plugin. Trigger with phrases like "obsidian backup", "obsidian sync", "obsidian data export", "vault backup strategy".

2,266 Updated today
jeremylongshore
AI & Automation Featured

obsidian-sdk-patterns

Production-ready Obsidian plugin patterns: typed settings with migration, safe vault operations, event auto-cleanup, workspace layout, metadata cache, and debounced file handlers. Use when hardening a plugin for release, refactoring for reliability, or learning idiomatic Obsidian TypeScript. Trigger with "obsidian patterns", "obsidian best practices", "obsidian production code", "idiomatic obsidian plugin".

2,266 Updated today
jeremylongshore
AI & Automation Featured

obsidian-reference-architecture

Implement Obsidian reference architecture with best-practice project layout. Use when designing new plugins, reviewing project structure, or establishing architecture standards for Obsidian development. Trigger with phrases like "obsidian architecture", "obsidian project structure", "obsidian best practices", "organize obsidian plugin".

2,266 Updated today
jeremylongshore