SHA256
chore(repo): establish isolated mobile repository and upstream audit
This commit is contained in:
commit
fbcc220869
6 files changed
+136
No files matched your search
@@ -0,0 +1,3 @@
|
||||
* text=auto eol=lf
|
||||
*.png binary
|
||||
*.jar binary
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
.DS_Store
|
||||
.idea/
|
||||
.gradle/
|
||||
**/build/
|
||||
local.properties
|
||||
*.keystore
|
||||
*.jks
|
||||
*.p12
|
||||
*.mobileprovision
|
||||
.env
|
||||
.env.*
|
||||
DerivedData/
|
||||
*.xcuserstate
|
||||
xcuserdata/
|
||||
ios/Yuvomi.xcodeproj/
|
||||
.swiftpm/
|
||||
.build/
|
||||
artifacts/
|
||||
__pycache__/
|
||||
node_modules/
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Yuvomi Mobile contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Yuvomi Mobile
|
||||
|
||||
Independent, community-maintained Android (Kotlin/WebView) and iOS
|
||||
(SwiftUI/WKWebView) companions for user-owned [Yuvomi](https://github.com/ulsklyc/yuvomi)
|
||||
servers. Not affiliated with or endorsed by upstream.
|
||||
|
||||
**Development build - not production-ready.** See [validation status](docs/validation.md).
|
||||
No mobile backend, advertisements, telemetry, tracking, subscriptions, or mandatory cloud.
|
||||
The configured server supplies the application and retains responsibility for its own
|
||||
integrations, version checks, security and privacy.
|
||||
|
||||
Use a root-hosted HTTPS instance with a valid certificate, including private servers
|
||||
accessible through your VPN. Custom ports are supported. HTTP and subpath deployments
|
||||
are intentionally rejected. Enter the server on first launch; use Server settings to
|
||||
reconnect or erase local browsing data and switch installations.
|
||||
|
||||
- [Architecture](docs/architecture.md)
|
||||
- [Android build](docs/build-android.md) / [iOS build](docs/build-ios.md)
|
||||
- [Compatibility and authentication](docs/server-compatibility.md)
|
||||
- [Release process](docs/release-process.md)
|
||||
|
||||
MIT licensed. Upstream notices are preserved in `THIRD_PARTY_NOTICES.md`.
|
||||
This implementation is AI-assisted (OpenAI via OpenCode) and requires human security
|
||||
review before release. No upstream modification or public submission is authorized.
|
||||
@@ -0,0 +1,33 @@
|
||||
# Attribution
|
||||
|
||||
Yuvomi Mobile is an independent community contribution, not an official Yuvomi
|
||||
product. Yuvomi's name identifies the server with which it interoperates.
|
||||
Visual color values follow upstream DESIGN.md. No upstream logo is redistributed.
|
||||
|
||||
Upstream Yuvomi: https://github.com/ulsklyc/yuvomi
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 ulsklyc
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
Android build dependencies retain their own licenses (Android SDK/platform APIs,
|
||||
AndroidX: Apache-2.0; Kotlin: Apache-2.0; Gradle: Apache-2.0).
|
||||
Apple system frameworks are provided by the operating system, not vendored here.
|
||||
@@ -0,0 +1,35 @@
|
||||
# Upstream source audit
|
||||
|
||||
Inspected 2026-10-20: https://github.com/ulsklyc/yuvomi
|
||||
revision `10bfef7686ed7303b4c74c7fcc55a5eb16356c9d`, package version `2.78.0`.
|
||||
Source was cloned outside this repository; no upstream files were modified.
|
||||
|
||||
Read README, CONTRIBUTING (including AI disclosure), SECURITY, DESIGN, package
|
||||
manifest, server/index.js, server/auth.js, public/sw.js, sw-register.js and
|
||||
notification settings. Reviewed the latest 100 open issues/PRs via GitHub API;
|
||||
that sample is not an exhaustive review of all historical reports.
|
||||
|
||||
Findings:
|
||||
|
||||
- Frontend has no framework/build step; native projects remain separate.
|
||||
- Public `/api/v1/version` exposes `app_name`, `setup_required`,
|
||||
`password_reset_enabled`, **not** a release number before authentication.
|
||||
- `/api/v1/auth/oidc/config` exposes enabled/password-login flags.
|
||||
- Sessions are HttpOnly, SameSite=Lax, persistent cookies. Operators must set
|
||||
`SESSION_SECURE=true` behind TLS. Native code must not replace auth or CSRF.
|
||||
- Username/password, TOTP/recovery codes, reset and logout are web features.
|
||||
- OIDC stores state, nonce and PKCE in the initiating browser's server session,
|
||||
and returns to the configured server callback. There is no mobile callback,
|
||||
one-time session exchange, or universal-link association protocol.
|
||||
- Root-relative API, assets, redirects, service-worker registration and cookie
|
||||
path mean subpaths cannot be promised. Use a dedicated hostname instead.
|
||||
- Service worker has versioned shell caches and allow-listed read-only API
|
||||
caching; mutations and authentication remain network-only. No offline editing.
|
||||
- Web Push is not native push. Optional upstream ntfy/Gotify/webhook channels
|
||||
provide self-hosted alternatives through their own clients.
|
||||
- Upstream uses violet `#6C3AED`, warm grouped background `#F5F3ED`, and native
|
||||
system fonts. Native screens follow these tokens without changing web design.
|
||||
|
||||
Compatibility probing is structural, not cryptographic identification: any server
|
||||
can imitate the public endpoints. Users must trust the URL they enter. Exact release
|
||||
compatibility needs authenticated integration testing; no version range is inferred.
|
||||
Reference in new issue
Block a user