Implemented the Play Store readiness pass.

This commit is contained in:
2026-05-11 19:06:10 +03:30
parent 33fa8744e1
commit ad05e9da35
17 changed files with 312 additions and 46 deletions

View File

@@ -0,0 +1,37 @@
# Play Console Data Safety Notes
Use this as a starting point for the Play Console Data safety form. Review it before submission because the final answers are your legal responsibility.
## App Data Flow
NGX Monitor is a client for monitor endpoints configured by the user. The developer does not operate a backend for this app.
Stored locally on the device:
- Server names, base URLs, tags, fallback LAN IPs, and alert thresholds
- Monitor API tokens and optional Basic Auth credentials, encrypted with Android Keystore
- Metric samples, alert history, route diagnostics, and widget preferences
Transmitted by the app:
- HTTP(S) requests to user-configured monitor endpoints
- Authentication headers only for the specific endpoint configured by the user
- Notification content generated locally on the device
Not used by the app:
- Advertising ID
- Location APIs
- Contacts, photos, camera, microphone, calendar, or SMS
- Developer-operated analytics or crash reporting SDKs
## Suggested Data Safety Answers
- Data collected by developer: No
- Data shared with third parties by developer: No
- Data is encrypted in transit: Yes, when users configure HTTPS monitor endpoints
- Users can request data deletion: Data is local; users can delete server profiles in-app or clear app data
- App type: utility/productivity
- Account creation: Not required
Important note for the form: the app allows user-configured HTTP endpoints for private LAN monitoring. If you publish with HTTP support enabled, disclose that encryption in transit depends on the endpoint configured by the user.

View File

@@ -0,0 +1,92 @@
# Google Play Release Checklist
This project is configured to build Google Play compatible Android App Bundles.
## Current Project Readiness
- Package name: `net.rodakot.ngxhttpmonitoringclient`
- Minimum SDK: 24
- Target SDK: 36
- Version: `VERSION_NAME` / `VERSION_CODE` in `gradle.properties`
- Release build: R8 minification enabled, resource shrinking enabled
- App data backup: disabled for app data, databases, shared preferences, and files
- Release signing: read from environment variables or `local.properties`
## Create An Upload Key
Create an upload keystore outside the repository:
```powershell
keytool -genkeypair `
-v `
-keystore "C:\secure\keys\ngx-monitor-upload.jks" `
-storetype JKS `
-keyalg RSA `
-keysize 4096 `
-validity 10000 `
-alias ngx-monitor-upload
```
Copy `local.properties.example` to `local.properties` and set:
```properties
NGX_RELEASE_STORE_FILE=C:\Users\meghdad\keystores\ngx-monitor-upload.jks
NGX_RELEASE_STORE_PASSWORD=<redacted>
NGX_RELEASE_KEY_ALIAS=ngx-monitor-upload
NGX_RELEASE_KEY_PASSWORD=<redacted>
```
Do not commit `local.properties` or the keystore.
## Build Release Artifacts
Unsigned release sanity build:
```powershell
$env:GRADLE_USER_HOME='C:\Users\meghdad\AndroidStudioProjects\NGXhttpMonitoringClient\.gradle-user'
.\gradlew.bat :app:bundleRelease --console=plain
```
Signed upload bundle, after signing values are configured:
```powershell
$env:GRADLE_USER_HOME='C:\Users\meghdad\AndroidStudioProjects\NGXhttpMonitoringClient\.gradle-user'
.\gradlew.bat :app:bundleRelease --console=plain
```
Output:
```text
app/build/outputs/bundle/release/app-release.aab
```
## Before Uploading To Play Console
1. Create the app in Play Console.
2. Enable Play App Signing.
3. Upload `app-release.aab`.
4. Fill the store listing using `fastlane/metadata/android/en-US`.
5. Upload phone screenshots and a 1024x500 feature graphic.
6. Host `docs/PRIVACY_POLICY.md` as a public web page and paste that URL into Play Console.
7. Complete Data Safety using `docs/PLAY_STORE_DATA_SAFETY.md`.
8. Complete Content Rating. Suggested category: utility/productivity/server monitoring.
9. Complete Target Audience. This app is for server administrators, not children.
10. Run an internal test release before production.
## Release Version Bump
For every Play upload, increment `VERSION_CODE` in `gradle.properties`.
Example:
```properties
VERSION_CODE=2
VERSION_NAME=1.0.1
```
## Official References
- Google Play target API requirements: https://support.google.com/googleplay/android-developer/answer/11926878
- Android app signing: https://developer.android.com/studio/publish/app-signing
- Build and upload an Android App Bundle: https://developer.android.com/guide/app-bundle
- Google Play Data safety: https://support.google.com/googleplay/android-developer/answer/10787469

37
docs/PRIVACY_POLICY.md Normal file
View File

@@ -0,0 +1,37 @@
# NGX Monitor Privacy Policy
Effective date: 2026-05-11
NGX Monitor is a mobile client for monitoring Nginx servers that you configure in the app.
## Data Stored On Your Device
The app stores server profiles, monitor endpoint URLs, optional fallback LAN IP addresses, tags, alert thresholds, metric history, route diagnostics, alerts, and widget preferences on your device.
If you save monitor tokens or Basic Auth credentials, the app encrypts them with Android Keystore before storing them locally.
Android cloud backup and device transfer are disabled for app data.
## Data Sent By The App
The app sends monitor API requests only to endpoints that you configure. If you configure authentication, the app sends the configured token or Basic Auth credentials to that monitor endpoint.
The app does not send your monitor data, credentials, server list, or usage data to the app developer.
## Network Security
HTTPS is recommended for monitor endpoints. The app also supports HTTP endpoints for private LAN monitoring when the user explicitly configures them.
## Third Parties
The app does not include advertising SDKs, analytics SDKs, or developer-operated crash reporting SDKs.
Google Play may process app install, billing, review, crash, and device information according to Google's own policies.
## Data Deletion
You can delete server profiles inside the app. You can also remove all app data from Android system settings by clearing the app's storage or uninstalling the app.
## Contact
Replace this section with the publisher support email before submitting the app to Google Play.