@rashidazarang/airtable-mcp 1.5.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.github/ISSUE_TEMPLATE/bug-report.yml +173 -0
  2. package/.github/ISSUE_TEMPLATE/feature-request.yml +209 -0
  3. package/.github/ISSUE_TEMPLATE/security-report.yml +216 -0
  4. package/.github/pull_request_template.md +245 -0
  5. package/.github/workflows/ci-cd.yml +408 -0
  6. package/.github/workflows/security-audit.yml +316 -0
  7. package/API_DOCUMENTATION.md +897 -0
  8. package/CODE_OF_CONDUCT.md +181 -0
  9. package/Dockerfile.production +127 -0
  10. package/README.md +55 -10
  11. package/RELEASE_NOTES_v1.6.0.md +248 -0
  12. package/airtable-clipper/CHANGELOG.md +198 -0
  13. package/airtable-clipper/CHROME_STORE_SUBMISSION.md +343 -0
  14. package/airtable-clipper/LAUNCH_STRATEGY.md +495 -0
  15. package/airtable-clipper/LICENSE +21 -0
  16. package/airtable-clipper/OAUTH_SETUP.md +51 -0
  17. package/airtable-clipper/PRIVACY_POLICY.md +187 -0
  18. package/airtable-clipper/README.md +575 -0
  19. package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +273 -0
  20. package/airtable-clipper/build.sh +85 -0
  21. package/airtable-clipper/docs/QUICK_START.md +99 -0
  22. package/airtable-clipper/docs/SETUP.md +291 -0
  23. package/airtable-clipper/extension/background.js +337 -0
  24. package/airtable-clipper/extension/base-setup.html +324 -0
  25. package/airtable-clipper/extension/base-setup.js +471 -0
  26. package/airtable-clipper/extension/content.js +771 -0
  27. package/airtable-clipper/extension/icons/README.md +69 -0
  28. package/airtable-clipper/extension/icons/icon-16.png +3 -0
  29. package/airtable-clipper/extension/manifest.json +73 -0
  30. package/airtable-clipper/extension/popup.html +144 -0
  31. package/airtable-clipper/extension/popup.js +475 -0
  32. package/airtable-clipper/extension/styles/content.css +229 -0
  33. package/airtable-clipper/extension/styles/popup.css +477 -0
  34. package/airtable-clipper/privacy-policy.md +63 -0
  35. package/airtable-clipper/releases/v1.0.0/background.js +337 -0
  36. package/airtable-clipper/releases/v1.0.0/base-setup.html +324 -0
  37. package/airtable-clipper/releases/v1.0.0/base-setup.js +471 -0
  38. package/airtable-clipper/releases/v1.0.0/content.js +771 -0
  39. package/airtable-clipper/releases/v1.0.0/icons/README.md +69 -0
  40. package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +2 -0
  41. package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +3 -0
  42. package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +2 -0
  43. package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +2 -0
  44. package/airtable-clipper/releases/v1.0.0/manifest.json +73 -0
  45. package/airtable-clipper/releases/v1.0.0/popup.html +144 -0
  46. package/airtable-clipper/releases/v1.0.0/popup.js +475 -0
  47. package/airtable-clipper/releases/v1.0.0/sidepanel.html +25 -0
  48. package/airtable-clipper/releases/v1.0.0/styles/content.css +229 -0
  49. package/airtable-clipper/releases/v1.0.0/styles/popup.css +477 -0
  50. package/airtable-clipper/releases/v1.0.1/background.js +337 -0
  51. package/airtable-clipper/releases/v1.0.1/base-setup.html +324 -0
  52. package/airtable-clipper/releases/v1.0.1/base-setup.js +471 -0
  53. package/airtable-clipper/releases/v1.0.1/content.js +771 -0
  54. package/airtable-clipper/releases/v1.0.1/icons/README.md +69 -0
  55. package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +2 -0
  56. package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +3 -0
  57. package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +2 -0
  58. package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +2 -0
  59. package/airtable-clipper/releases/v1.0.1/manifest.json +70 -0
  60. package/airtable-clipper/releases/v1.0.1/popup.html +157 -0
  61. package/airtable-clipper/releases/v1.0.1/popup.js +562 -0
  62. package/airtable-clipper/releases/v1.0.1/sidepanel.html +25 -0
  63. package/airtable-clipper/releases/v1.0.1/styles/content.css +229 -0
  64. package/airtable-clipper/releases/v1.0.1/styles/popup.css +647 -0
  65. package/airtable-clipper/releases/v1.0.2/background.js +337 -0
  66. package/airtable-clipper/releases/v1.0.2/base-setup.html +324 -0
  67. package/airtable-clipper/releases/v1.0.2/base-setup.js +471 -0
  68. package/airtable-clipper/releases/v1.0.2/content.js +771 -0
  69. package/airtable-clipper/releases/v1.0.2/icons/README.md +69 -0
  70. package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +2 -0
  71. package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +3 -0
  72. package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +2 -0
  73. package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +2 -0
  74. package/airtable-clipper/releases/v1.0.2/manifest.json +62 -0
  75. package/airtable-clipper/releases/v1.0.2/popup.html +157 -0
  76. package/airtable-clipper/releases/v1.0.2/popup.js +567 -0
  77. package/airtable-clipper/releases/v1.0.2/sidepanel.html +25 -0
  78. package/airtable-clipper/releases/v1.0.2/styles/content.css +229 -0
  79. package/airtable-clipper/releases/v1.0.2/styles/popup.css +647 -0
  80. package/airtable-clipper/terms-of-service.md +124 -0
  81. package/airtable-clipper/test-credentials.md +61 -0
  82. package/airtable-clipper/test-extension/background.js +337 -0
  83. package/airtable-clipper/test-extension/base-setup.html +324 -0
  84. package/airtable-clipper/test-extension/base-setup.js +471 -0
  85. package/airtable-clipper/test-extension/content.js +873 -0
  86. package/airtable-clipper/test-extension/icons/README.md +69 -0
  87. package/airtable-clipper/test-extension/icons/icon-128.png +2 -0
  88. package/airtable-clipper/test-extension/icons/icon-16.png +3 -0
  89. package/airtable-clipper/test-extension/icons/icon-32.png +2 -0
  90. package/airtable-clipper/test-extension/icons/icon-48.png +2 -0
  91. package/airtable-clipper/test-extension/manifest.json +72 -0
  92. package/airtable-clipper/test-extension/popup.html +274 -0
  93. package/airtable-clipper/test-extension/popup.js +729 -0
  94. package/airtable-clipper/test-extension/sidepanel.html +25 -0
  95. package/airtable-clipper/test-extension/styles/content.css +229 -0
  96. package/airtable-clipper/test-extension/styles/popup.css +794 -0
  97. package/airtable_mcp_v2.js +1505 -0
  98. package/airtable_mcp_v2_oauth.js +1048 -0
  99. package/airtable_mcp_v3_advanced.js +1161 -0
  100. package/airtable_simple.js +447 -1
  101. package/airtable_simple_production.js +532 -0
  102. package/docker-compose.production.yml +366 -0
  103. package/helm/airtable-mcp/Chart.yaml +122 -0
  104. package/helm/airtable-mcp/values.yaml +538 -0
  105. package/k8s/deployment.yaml +402 -0
  106. package/k8s/namespace.yaml +108 -0
  107. package/k8s/service.yaml +194 -0
  108. package/monitoring/alerts.yml +289 -0
  109. package/monitoring/prometheus.yml +224 -0
  110. package/package.json +6 -6
  111. package/test_v1.6.0_comprehensive.sh +187 -0
  112. package/.claude/settings.local.json +0 -12
  113. package/airtable-mcp-1.1.0.tgz +0 -0
  114. package/airtable_enhanced.js +0 -499
  115. package/airtable_simple_v1.2.4_backup.js +0 -277
  116. package/airtable_v1.4.0.js +0 -654
  117. package/rashidazarang-airtable-mcp-1.1.0.tgz +0 -0
  118. package/rashidazarang-airtable-mcp-1.2.0.tgz +0 -0
  119. package/rashidazarang-airtable-mcp-1.2.1.tgz +0 -0
@@ -0,0 +1,187 @@
1
+ # Privacy Policy for Airtable Clipper
2
+
3
+ **Last Updated: January 15, 2025**
4
+
5
+ ## Overview
6
+
7
+ Airtable Clipper is a Chrome extension that helps users save web content to their personal Airtable databases. We are committed to protecting your privacy and being transparent about our data practices.
8
+
9
+ ## Data Collection and Usage
10
+
11
+ ### What We DO NOT Collect
12
+ - ❌ **Personal Information**: We do not collect names, emails, or personal details
13
+ - ❌ **Browsing History**: We do not track which websites you visit
14
+ - ❌ **Usage Analytics**: We do not collect analytics or telemetry data
15
+ - ❌ **Content Data**: We do not store or access the content you extract
16
+ - ❌ **Airtable Credentials**: Your tokens are stored locally and never transmitted to our servers
17
+
18
+ ### What We DO Process (Locally Only)
19
+ - ✅ **Page Content**: Only when you explicitly choose to extract it
20
+ - ✅ **Extension Settings**: Stored locally in Chrome's sync storage
21
+ - ✅ **Airtable Credentials**: Stored securely in Chrome's local storage
22
+
23
+ ## How the Extension Works
24
+
25
+ 1. **Local Processing**: All data extraction happens in your browser
26
+ 2. **Direct Integration**: Extracted data goes straight from your browser to YOUR Airtable account
27
+ 3. **No Middleman**: We never see or store your data on external servers
28
+ 4. **Your Control**: You decide what to save and when
29
+
30
+ ## Data Storage
31
+
32
+ ### Local Storage (Chrome)
33
+ - **Airtable Personal Access Token**: Encrypted and stored locally
34
+ - **Base ID and Settings**: Stored in Chrome's sync storage
35
+ - **Usage Statistics**: Local counters only (clips saved, success rate)
36
+
37
+ ### Airtable Storage
38
+ - **Your Data**: Goes directly to your own Airtable account
39
+ - **We Have No Access**: We cannot see or access your Airtable data
40
+ - **Your Ownership**: You own and control all data in your Airtable
41
+
42
+ ## Permissions Explained
43
+
44
+ We request minimal permissions necessary for functionality:
45
+
46
+ ### Required Permissions
47
+
48
+ #### `activeTab`
49
+ - **Purpose**: Access the current webpage you're viewing
50
+ - **Usage**: Extract content from LinkedIn profiles, articles, etc.
51
+ - **Limitation**: Only when you explicitly click to save content
52
+
53
+ #### `storage`
54
+ - **Purpose**: Save your extension settings locally
55
+ - **Usage**: Store Airtable credentials and preferences
56
+ - **Limitation**: All data stays on your device
57
+
58
+ #### `contextMenus`
59
+ - **Purpose**: Add "Save to Airtable" to right-click menu
60
+ - **Usage**: Quick access to save selected content
61
+ - **Limitation**: Only adds menu items, doesn't access browsing data
62
+
63
+ #### `notifications`
64
+ - **Purpose**: Show success/error messages
65
+ - **Usage**: Confirm when content is saved to Airtable
66
+ - **Limitation**: Simple notifications only, no data collection
67
+
68
+ ### Host Permissions
69
+
70
+ #### `https://*.linkedin.com/*`
71
+ - **Purpose**: Extract public profile information from LinkedIn
72
+ - **Usage**: Save contact details from publicly visible profiles
73
+ - **Limitation**: Only public information, respects LinkedIn's terms of service
74
+
75
+ #### `https://api.airtable.com/*`
76
+ - **Purpose**: Send data directly to your Airtable account
77
+ - **Usage**: Create and update records in your chosen Airtable base
78
+ - **Limitation**: Only your account, using your credentials
79
+
80
+ #### `https://*/` (Optional, for universal web clipping)
81
+ - **Purpose**: Extract content from any website you choose to clip
82
+ - **Usage**: Save articles, posts, and other web content
83
+ - **Limitation**: Only when you explicitly trigger the save action
84
+
85
+ ## Third-Party Services
86
+
87
+ ### Airtable Integration
88
+ - **Direct API Connection**: We use Airtable's official REST API
89
+ - **Your Credentials**: You provide your own Airtable Personal Access Token
90
+ - **Data Transmission**: Secure HTTPS connection directly to Airtable
91
+ - **Privacy**: Governed by [Airtable's Privacy Policy](https://airtable.com/privacy)
92
+
93
+ ### LinkedIn Compliance
94
+ - **Public Data Only**: We only extract publicly visible profile information
95
+ - **Terms Compliance**: We respect LinkedIn's [User Agreement](https://linkedin.com/legal/user-agreement)
96
+ - **Rate Limiting**: We implement delays to avoid overwhelming LinkedIn's servers
97
+ - **Ethical Use**: Designed for legitimate business and research purposes
98
+
99
+ ## Your Rights and Controls
100
+
101
+ ### Data Portability
102
+ - **Export**: All your data is in your own Airtable account
103
+ - **Backup**: You can export data from Airtable at any time
104
+ - **Migration**: Switch to other tools using Airtable's export features
105
+
106
+ ### Data Deletion
107
+ - **Extension Data**: Uninstall the extension to remove all local data
108
+ - **Airtable Data**: Delete records directly in your Airtable account
109
+ - **No Retention**: We don't retain any data when you uninstall
110
+
111
+ ### Access Control
112
+ - **Your Choice**: You decide what content to save and when
113
+ - **Granular Control**: Enable/disable features in extension settings
114
+ - **Token Management**: Revoke access tokens in Airtable at any time
115
+
116
+ ## Security Measures
117
+
118
+ ### Data Protection
119
+ - **Local Encryption**: Sensitive data encrypted in Chrome storage
120
+ - **HTTPS Only**: All API communications use secure connections
121
+ - **No External Servers**: No data passes through our servers
122
+ - **Regular Updates**: Security patches and improvements
123
+
124
+ ### Best Practices
125
+ - **Minimal Permissions**: We request only necessary permissions
126
+ - **Secure Storage**: Use Chrome's secure storage APIs
127
+ - **Input Validation**: All data is validated before processing
128
+ - **Error Handling**: Graceful handling of edge cases and failures
129
+
130
+ ## Changes to Privacy Policy
131
+
132
+ We may update this privacy policy from time to time. We will notify users of any material changes through:
133
+ - **Extension Updates**: Changes included in extension update notes
134
+ - **GitHub Repository**: Updates posted to our public repository
135
+ - **In-Extension Notices**: Important changes shown in the extension interface
136
+
137
+ ## Compliance
138
+
139
+ ### Legal Standards
140
+ - **GDPR Compliant**: No personal data collection or processing
141
+ - **CCPA Compliant**: No sale or sharing of personal information
142
+ - **COPPA Compliant**: No data collection from children under 13
143
+
144
+ ### Industry Standards
145
+ - **Chrome Web Store Policies**: Full compliance with Chrome extension policies
146
+ - **OAuth 2.0**: Secure authentication standards for API access
147
+ - **REST API Security**: Following best practices for API integration
148
+
149
+ ## Contact Information
150
+
151
+ ### For Privacy Questions
152
+ - **Email**: Not applicable (we don't collect data to have privacy questions about)
153
+ - **GitHub Issues**: [Report privacy concerns](https://github.com/rashidazarang/airtable-clipper/issues)
154
+ - **Documentation**: [Full documentation](https://github.com/rashidazarang/airtable-clipper)
155
+
156
+ ### For Technical Support
157
+ - **GitHub Discussions**: [Get help from the community](https://github.com/rashidazarang/airtable-clipper/discussions)
158
+ - **Bug Reports**: [Report technical issues](https://github.com/rashidazarang/airtable-clipper/issues)
159
+
160
+ ## Transparency Report
161
+
162
+ ### Open Source
163
+ - **Full Source Code**: Available on [GitHub](https://github.com/rashidazarang/airtable-clipper)
164
+ - **No Hidden Functions**: All code is publicly auditable
165
+ - **Community Contributions**: Open to community review and contributions
166
+
167
+ ### No Analytics
168
+ - **No Google Analytics**: We don't use any analytics services
169
+ - **No Crash Reporting**: We don't collect crash reports or error logs
170
+ - **No Usage Tracking**: We don't track how you use the extension
171
+
172
+ ---
173
+
174
+ ## Summary
175
+
176
+ **Airtable Clipper is designed with privacy as a core principle:**
177
+
178
+ ✅ **Local Processing**: Everything happens in your browser
179
+ ✅ **Direct Integration**: Your data goes straight to your Airtable
180
+ ✅ **No Data Collection**: We don't collect, store, or analyze your data
181
+ ✅ **Your Control**: You own and control all your data
182
+ ✅ **Open Source**: Full transparency with public source code
183
+ ✅ **Minimal Permissions**: Only what's necessary for functionality
184
+
185
+ If you have any questions about this privacy policy or our data practices, please don't hesitate to reach out through our GitHub repository.
186
+
187
+ **Your privacy is our priority.**