diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index adacffa..014b17b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [20.x] steps: - uses: actions/checkout@v4 @@ -21,7 +21,6 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'npm' - name: Setup Bun uses: oven-sh/setup-bun@v1 diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index fc69138..0fc0a2e 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [20.x] steps: - uses: actions/checkout@v4 @@ -21,7 +21,6 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'npm' - name: Setup Bun uses: oven-sh/setup-bun@v1 diff --git a/.gitignore b/.gitignore index da72d95..ac0c11c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules/ dist/ *.log -.DS_Store \ No newline at end of file +.DS_Store +temp \ No newline at end of file diff --git a/README.md b/README.md index 05781c1..cf87f0e 100644 --- a/README.md +++ b/README.md @@ -82,3 +82,28 @@ bun run build:prod ## License MIT License + +## Creating a ZIP file for Store Submission + +To create a ZIP file for submitting to the Chrome Web Store: + +1. Build the production version: +```bash +bun run build:prod +``` + +2. Create a ZIP file containing the following files and directories: +```bash +VERSION=$(node -p "require('./package.json').version") +mkdir ./temp +cd dist +zip -r "../temp/nanokvm-capture-v${VERSION}.zip" ./* +cd .. +``` + +This will create `nanokvm-capture-v{version}.zip` (e.g., `nanokvm-capture-v1.0.0.zip`) in the project root directory, which includes: +- All contents of the `dist/` directory +- `manifest.json` +- `icons/` directory + +The generated ZIP file is ready to be submitted to the Chrome Web Store. diff --git a/docs/1280x800.png b/docs/1280x800.png new file mode 100644 index 0000000..fbbdd96 Binary files /dev/null and b/docs/1280x800.png differ diff --git a/docs/PRIVACY_POLICY.md b/docs/PRIVACY_POLICY.md index 820c727..abb768a 100644 --- a/docs/PRIVACY_POLICY.md +++ b/docs/PRIVACY_POLICY.md @@ -1,34 +1,94 @@ -# Privacy Policy +# Privacy Policy for NanoKVM Capture Chrome Extension -NanoKVM Capture (hereinafter referred to as "this extension") respects user privacy and handles data in accordance with the following policy. +To facilitate the compliance of your extension with the Chrome Web Store Developer Program Policies, you are required to provide the information listed below. The information provided in this form will be shared with the Chrome Web Store team. Please ensure that the information provided is accurate, as it will improve the review time of your extension and decrease the risk of this version being rejected. -## Information We Collect -This extension only collects the following information: +## Single purpose -- Screenshots of the NanoKVM interface (only when explicitly captured by the user) -- Screen recordings of the NanoKVM interface (only when recording is explicitly initiated by the user) +An extension must have a single purpose that is narrow and easy-to-understand. -## How We Use Your Data +### Single purpose description -- All collected data (screenshots and recordings) is stored only in your local environment -- Collected data is never transmitted to external servers -- Collected data is retained in your local environment unless explicitly deleted by you +``` +NanoKVM Capture is a Chrome extension designed specifically to enhance NanoKVM's functionality by adding screenshot and video recording capabilities. This extension allows users to capture and record their NanoKVM remote desktop sessions directly from their browser, providing essential documentation and troubleshooting capabilities for system administrators and users working with NanoKVM-managed devices. +``` -## Data Sharing +## Permission justification -This extension does not share any collected data with third parties. +A permission is either one of a list of known strings, such as "activeTab", or a match pattern giving access to one or more hosts. +Remove any permission that is not needed to fulfill the single purpose of your extension. Requesting an unnecessary permission will result in this version being rejected. -## Security +### scripting justification -This extension handles all collected data only in your local environment and implements appropriate security measures. +``` +The scripting permission is essential for implementing screenshot and video recording capabilities. This permission is required to execute JavaScript on web pages to enable the capture functionality. +``` -## Changes to This Privacy Policy +### Host permission justification -This privacy policy may be updated as needed. We will notify you of any significant changes through extension updates. +``` +Host permissions are required to access the NanoKVM control interface. This permission is necessary to enable capture functionality on the NanoKVM web interface. +``` -## Contact Us +### Are you using remote code? -If you have any questions or concerns about this privacy policy, please contact us through the GitHub Issues page. +[x] No, I am not using Remote code +[] Yes, I am using Remote code -Last Updated: January 12, 2024 \ No newline at end of file + +### Justification + +``` +This extension executes all code locally and does not use any remote code. All functionality is provided by code contained within the extension itself. +``` + +## Data usage + +The content of this form will be displayed publicly on the item detail page. By publishing your item, you are certifying that these disclosures reflect the most up-to-date content of your privacy policy. + +### What user data do you plan to collect from users now or in the future? (See FAQ for more information) + +[] Personally identifiable information +For example: name, address, email address, age, or identification number + +[] Health information +For example: heart rate data, medical history, symptoms, diagnoses, or procedures + +[] Financial and payment information +For example: transactions, credit card numbers, credit ratings, financial statements, or payment history + +[] Authentication information +For example: passwords, credentials, security question, or personal identification number (PIN) + +[] Personal communications +For example: emails, texts, or chat messages + +[] Location +For example: region, IP address, GPS coordinates, or information about things near the user's device + +[] Web history +The list of web pages a user has visited, as well as associated data such as page title and time of visit + +[x] User activity +For example: network monitoring, clicks, mouse position, scroll, or keystroke logging + +[x] Website content +For example: text, images, sounds, videos, or hyperlinks + +### I certify that the following disclosures are true: + +[x] I do not sell or transfer user data to third parties, outside of the approved use cases +[x] I do not use or transfer user data for purposes that are unrelated to my item's single purpose +[x] I do not use or transfer user data to determine creditworthiness or for lending purposes + +You must certify all three disclosures to comply with our Developer Program Policies + +## Privacy policy + +An extension must have a privacy policy if it collects user data. Learn more + +### Privacy policy URL + +``` +https://github.com/koedame/webextension-nanokvm-capture/blob/main/docs/PRIVACY_POLICY.md +``` diff --git a/manifest.json b/manifest.json index 3dab6de..ec44e5f 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "NanoKVM Capture", "version": "1.0.0", - "description": "Chrome extension for capturing NanoKVM interface", + "description": "A Chrome extension that adds screenshot and video recording capabilities to NanoKVM.", "icons": { "16": "icons/icon16.png", "32": "icons/icon32.png", diff --git a/package.json b/package.json index 1570ec3..e7fea1e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "webextension-nanokvm-capture", "version": "1.0.0", - "description": "Chrome extension for capturing NanoKVM interface", + "description": "A Chrome extension that adds screenshot and video recording capabilities to NanoKVM.", "type": "module", "scripts": { "dev": "bun run scripts/watch.ts",