Implemented the Play Store readiness pass.
This commit is contained in:
37
docs/PLAY_STORE_DATA_SAFETY.md
Normal file
37
docs/PLAY_STORE_DATA_SAFETY.md
Normal 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.
|
||||
92
docs/PLAY_STORE_RELEASE.md
Normal file
92
docs/PLAY_STORE_RELEASE.md
Normal 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
37
docs/PRIVACY_POLICY.md
Normal 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.
|
||||
Reference in New Issue
Block a user