docs: Add comprehensive Plugin Licensing section to documentation
Added new "Plugin Licensing" section to plugin documentation that covers: **SmoothSchedule Community Plugin License (SCPL):** - Custom license for marketplace plugins - Grants platform rights to use, execute, host, and distribute code - Grants users rights to install, use, and modify for their business - Requires attribution to original author - Allows users to adapt code but not republish without permission - Permits authors to unpublish anytime (existing installs continue) - Authors retain copyright and can license elsewhere - Similar to MIT License + Platform Service Rights **Private vs. Marketplace Plugins:** - Private plugins: Full ownership, any license (or none), private to business - Marketplace plugins: Must use SCPL, visible to all users, author credited - Both types: Platform can execute code to provide automation service **Key Features:** - Comparison table showing differences between private and marketplace plugins - Code verification and security requirements documented - Decision guide for when to publish vs. keep private - Important notices about warranties, compliance, and data privacy - Platform service rights clearly explained **Legal Protections:** - Platform has rights to execute user code for service delivery - No warranty disclaimer (plugins "as-is") - User compliance responsibility for laws and regulations - Data privacy obligations (GDPR, CCPA compliance) The SCPL is designed to be marketplace-friendly while protecting both the platform and plugin authors, similar to how npm/PyPI handle packages but with added platform service rights for SaaS execution. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -203,6 +203,7 @@ const navSections: NavSection[] = [
|
||||
{ titleKey: 'Resource Limits', id: 'limits' },
|
||||
],
|
||||
},
|
||||
{ titleKey: 'Plugin Licensing', id: 'licensing' },
|
||||
];
|
||||
|
||||
const Sidebar: React.FC<{
|
||||
@@ -1623,6 +1624,192 @@ exec('print("hi")') # Error!`}
|
||||
</ApiExample>
|
||||
</ApiSection>
|
||||
|
||||
{/* Plugin Licensing */}
|
||||
<ApiSection id="licensing">
|
||||
<ApiContent>
|
||||
<h2 className="text-2xl font-bold text-gray-900 dark:text-white mt-0">
|
||||
Plugin Licensing
|
||||
</h2>
|
||||
<p className="text-gray-600 dark:text-gray-300">
|
||||
Understand the licensing terms for plugins you create and share on SmoothSchedule.
|
||||
</p>
|
||||
|
||||
<h3 className="text-lg font-semibold text-gray-900 dark:text-white">
|
||||
Private Plugins
|
||||
</h3>
|
||||
<p className="text-gray-600 dark:text-gray-300 text-sm">
|
||||
Plugins you create for personal use remain <strong>private</strong>. You retain full ownership and control:
|
||||
</p>
|
||||
<ul className="text-gray-600 dark:text-gray-300 text-sm">
|
||||
<li>Only accessible within your business account</li>
|
||||
<li>Not visible in the public marketplace</li>
|
||||
<li>You choose any license you want (or none)</li>
|
||||
<li>Platform can execute your code to provide the service</li>
|
||||
</ul>
|
||||
|
||||
<h3 className="text-lg font-semibold text-gray-900 dark:text-white">
|
||||
Marketplace Plugins (Public Sharing)
|
||||
</h3>
|
||||
<p className="text-gray-600 dark:text-gray-300 text-sm">
|
||||
When you <strong>publish a plugin to the marketplace</strong>, you agree to the{' '}
|
||||
<span className="font-semibold">SmoothSchedule Community Plugin License</span>:
|
||||
</p>
|
||||
|
||||
<div className="bg-purple-50 dark:bg-purple-900/20 border-2 border-purple-200 dark:border-purple-800 rounded-lg p-4 my-4">
|
||||
<h4 className="font-semibold text-purple-900 dark:text-purple-100 mb-2">
|
||||
SmoothSchedule Community Plugin License (SCPL)
|
||||
</h4>
|
||||
<div className="text-sm text-purple-800 dark:text-purple-200 space-y-2">
|
||||
<p>
|
||||
<strong>You grant the following rights:</strong>
|
||||
</p>
|
||||
<ol className="ml-4 space-y-1">
|
||||
<li>
|
||||
<strong>Platform Rights:</strong> SmoothSchedule may use, execute, host, and distribute your plugin code
|
||||
to provide the marketplace service
|
||||
</li>
|
||||
<li>
|
||||
<strong>User Rights:</strong> Other SmoothSchedule users may install, use, and modify your plugin
|
||||
for their own business purposes
|
||||
</li>
|
||||
<li>
|
||||
<strong>Attribution:</strong> Your authorship will be credited in the marketplace listing
|
||||
</li>
|
||||
<li>
|
||||
<strong>Modifications:</strong> Users may adapt your code to their needs, but cannot republish
|
||||
modified versions to the marketplace without your permission
|
||||
</li>
|
||||
<li>
|
||||
<strong>Revocation:</strong> You may unpublish your plugin at any time. Existing installations
|
||||
will continue to function, but new installs will be disabled
|
||||
</li>
|
||||
</ol>
|
||||
<p className="mt-3">
|
||||
<strong>You retain:</strong> Copyright ownership, ability to license elsewhere, right to unpublish
|
||||
</p>
|
||||
<p className="mt-2 text-xs italic">
|
||||
Similar to: MIT License + Platform Service Rights
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 className="text-lg font-semibold text-gray-900 dark:text-white">
|
||||
Code Verification & Security
|
||||
</h3>
|
||||
<p className="text-gray-600 dark:text-gray-300 text-sm">
|
||||
When you upload a plugin (private or marketplace):
|
||||
</p>
|
||||
<ul className="text-gray-600 dark:text-gray-300 text-sm">
|
||||
<li>Original code is stored for security verification</li>
|
||||
<li>Changing code after URL whitelisting will fail upload</li>
|
||||
<li>Platform may review code for security compliance</li>
|
||||
<li>Malicious code will result in account suspension</li>
|
||||
</ul>
|
||||
</ApiContent>
|
||||
<ApiExample>
|
||||
<div className="space-y-4">
|
||||
{/* Comparison Table */}
|
||||
<div className="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden">
|
||||
<div className="p-4 bg-gray-50 dark:bg-gray-900 border-b border-gray-200 dark:border-gray-700">
|
||||
<h3 className="font-semibold text-gray-900 dark:text-white">
|
||||
Private vs. Marketplace Plugins
|
||||
</h3>
|
||||
</div>
|
||||
<div className="divide-y divide-gray-200 dark:divide-gray-700">
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="font-semibold text-gray-700 dark:text-gray-300">Feature</div>
|
||||
<div className="font-semibold text-gray-700 dark:text-gray-300">Private</div>
|
||||
<div className="font-semibold text-gray-700 dark:text-gray-300">Marketplace</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="text-gray-600 dark:text-gray-400">Visibility</div>
|
||||
<div className="text-gray-900 dark:text-white">Your business only</div>
|
||||
<div className="text-gray-900 dark:text-white">All users</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="text-gray-600 dark:text-gray-400">License</div>
|
||||
<div className="text-gray-900 dark:text-white">Any (or none)</div>
|
||||
<div className="text-gray-900 dark:text-white">SCPL (required)</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="text-gray-600 dark:text-gray-400">Ownership</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ You retain all rights</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ You retain copyright</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="text-gray-600 dark:text-gray-400">Attribution</div>
|
||||
<div className="text-gray-900 dark:text-white">N/A</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ Required</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="text-gray-600 dark:text-gray-400">Can Unpublish</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ Delete anytime</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ Hide from marketplace</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4 p-3 text-xs">
|
||||
<div className="text-gray-600 dark:text-gray-400">Platform Use</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ Execute only</div>
|
||||
<div className="text-green-600 dark:text-green-400">✓ Execute + Distribute</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Important Notice */}
|
||||
<div className="bg-blue-50 dark:bg-blue-900/20 border-2 border-blue-200 dark:border-blue-800 rounded-lg p-4">
|
||||
<h3 className="flex items-center gap-2 font-semibold text-blue-900 dark:text-blue-100 mb-2">
|
||||
<AlertCircle size={18} />
|
||||
Important to Know
|
||||
</h3>
|
||||
<ul className="text-sm text-blue-800 dark:text-blue-200 space-y-2">
|
||||
<li>
|
||||
<strong>Platform Service Rights:</strong> By uploading any plugin, you grant SmoothSchedule
|
||||
the right to execute your code to provide the automation service
|
||||
</li>
|
||||
<li>
|
||||
<strong>No Warranty:</strong> Plugins are provided "as-is" without warranty. Test thoroughly
|
||||
before deploying to production
|
||||
</li>
|
||||
<li>
|
||||
<strong>Compliance:</strong> You are responsible for ensuring your plugin complies with all
|
||||
applicable laws and regulations
|
||||
</li>
|
||||
<li>
|
||||
<strong>Data Privacy:</strong> Handle customer data responsibly and in compliance with GDPR,
|
||||
CCPA, and other privacy laws
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{/* Quick Decision Guide */}
|
||||
<div className="bg-gray-50 dark:bg-gray-900 rounded-lg border border-gray-200 dark:border-gray-700 p-4">
|
||||
<h3 className="font-semibold text-gray-900 dark:text-white mb-3 text-sm">
|
||||
Should I Publish to Marketplace?
|
||||
</h3>
|
||||
<div className="space-y-3 text-xs">
|
||||
<div>
|
||||
<div className="font-semibold text-green-700 dark:text-green-400 mb-1">✓ Publish if:</div>
|
||||
<ul className="ml-4 space-y-1 text-gray-600 dark:text-gray-400">
|
||||
<li>You want to help the community</li>
|
||||
<li>Your plugin solves a common problem</li>
|
||||
<li>You're comfortable with the SCPL terms</li>
|
||||
<li>You want recognition as the author</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<div className="font-semibold text-red-700 dark:text-red-400 mb-1">✗ Keep Private if:</div>
|
||||
<ul className="ml-4 space-y-1 text-gray-600 dark:text-gray-400">
|
||||
<li>Contains business-specific logic</li>
|
||||
<li>Uses proprietary algorithms</li>
|
||||
<li>Integrates with private internal systems</li>
|
||||
<li>You want to restrict access</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ApiExample>
|
||||
</ApiSection>
|
||||
|
||||
{/* Resource Limits */}
|
||||
<ApiSection id="limits">
|
||||
<ApiContent>
|
||||
|
||||
Reference in New Issue
Block a user