mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
04aeee2e7bf84ed00a0ef80d7653922dbc4a76e9
73 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
04aeee2e7b |
fix(android): Simplify connlib gradle build configuration to ensure libconnlib.so is packaged (#3207)
Fixes #3205 |
||
|
|
e410220ba8 | chore(android): Remove outdated appDistribution group (#3204) | ||
|
|
4f37bfab93 |
refactor(connlib): Remove unused on_error callback (#3162)
Fixes #3161 Fixes #2867 |
||
|
|
653b32456a |
fix(android): handle_sign_in_callback is the host part of the URI (#3149)
Gets the new auth flow working for Android |
||
|
|
6a9ba5412c |
refactor(android): Remove AppLink in favor of nonce+state (#2826)
* Updates Android auth to remove AppLink authentication in favor of the custom URI -based scheme defined in #2823 * Default browser is opened instead of requiring Chrome Fixes #2703 --------- Signed-off-by: Jamil <jamilbk@users.noreply.github.com> Signed-off-by: Brian Manifold <bmanifold@users.noreply.github.com> Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com> Co-authored-by: Andrew Dryga <andrew@dryga.com> Co-authored-by: Brian Manifold <bmanifold@users.noreply.github.com> Co-authored-by: Gabi <gabrielalejandro7@gmail.com> Co-authored-by: Thomas Eizinger <thomas@eizinger.io> Co-authored-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Roopesh Chander <roop@roopc.net> |
||
|
|
1251397651 |
fix(ios/android): Pass device name and os version as overrides over connect (#3036)
Fixes #3035 Fixes #3037 # Before <img width="738" alt="Screenshot 2023-12-28 at 8 05 31 AM" src="https://github.com/firezone/firezone/assets/167144/c7ab4d74-672c-4536-97fe-f75d8d158bfb"> <img width="546" alt="Screenshot 2023-12-28 at 6 12 30 PM" src="https://github.com/firezone/firezone/assets/167144/1bd4ba98-d11d-4277-bd14-b0afcdf78119"> # After <img width="742" alt="Screenshot 2023-12-28 at 10 48 31 AM" src="https://github.com/firezone/firezone/assets/167144/96054f82-069f-47f7-862c-986455ef76c0"> <img width="744" alt="Screenshot 2023-12-28 at 6 29 37 PM" src="https://github.com/firezone/firezone/assets/167144/4ffc19b6-7c87-4ccb-bcfe-cb0e76fe95b7"> |
||
|
|
b7197d04c3 |
chore(deps): Bump hilt and fix groups (#3081)
Fixes #2429 |
||
|
|
05a64a9e20 |
chore(deps): bump com.diffplug.spotless from 6.23.2 to 6.23.3 in /kotlin/android (#3071)
Bumps com.diffplug.spotless from 6.23.2 to 6.23.3. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
2039839da3 |
chore(deps): bump androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.5 to 2.7.6 in /kotlin/android (#3073)
Bumps androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.5 to 2.7.6. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
6113effb5e | chore(ci): Lint Android readme (#3038) | ||
|
|
141bd60c47 |
include detail about toolchain in README.md (#3020)
Sometimes, the targets installed in the `kotlin/android/README.md` rustup steps are not installed in the same toolchain as the one that is used to build the `debugApp`. Added a small detail to check that the current toolchain has these targets. Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
b28e99cdab |
chore(ci): Use 1.0.0 as version base (#2949)
Fixes #2948 So it seems that it's easiest just to use an old-fashioned semver string. This means we'll need to keep a version matrix in the docs of which components are supported and for how long, but it's better than having different version schemes for different Firezone components altogether. |
||
|
|
de71e7060f | Reduce webrtc log level to error (#2911) | ||
|
|
8499580388 |
Remove Apple SplitDNS in favor of unified split DNS approach (#2894)
<img width="1552" alt="Screenshot 2023-12-12 at 11 29 43 PM" src="https://github.com/firezone/firezone/assets/167144/d517c830-64a8-462d-8cb5-c41835fa2059"> Found a reliable way to return default system DNS resolvers on iOS and macOS. Even if this method is not perfect, I think it's still worth pursuing because: * Many administrators will set an upstream resolver in the portal anyway (bypassing client system resolvers) * It unifies our Split DNS approach across platforms (assuming we can query the default system resolvers on Windows), allowing connlib to intercept all DNS queries on all platforms. This opens the door for some interesting feature possibilities in the area of malicious query blocking. This also makes DNS bugs easier to investigate because there's only one codepath for packets to take. See https://github.com/firezone/firezone/issues/2859 Draft because it needs more testing and I need to figure out the `RustVec<RustString>` type for the Swift -> Rust FFI. Refs #2713 |
||
|
|
ed3db22d01 |
Remove Account ID from Android (#2824)
Remove `AccountID` from Android. Refs #2791 --------- Co-authored-by: Brian Manifold <bmanifold@gmail.com> |
||
|
|
d483fdeeed |
Update Android README dev instructions (#2814)
Updated the Dev Setup instructions for Android |
||
|
|
5bd4c875c2 |
build(deps): Bump com.android.application from 8.1.2 to 8.2.0 in /kotlin/android (#2761)
Bumps com.android.application from 8.1.2 to 8.2.0. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
ef959fe8a5 |
bump spotless (#2796)
Dependabot wasn't able to do this one automatically since it required running the spotless fixer. |
||
|
|
58d8ec958b |
build(deps): Bump androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.4 to 2.7.5 in /kotlin/android (#2762)
Bumps androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.4 to 2.7.5. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
c890034e66 |
build(deps): Bump com.android.library from 8.1.2 to 8.2.0 in /kotlin/android (#2760)
Bumps com.android.library from 8.1.2 to 8.2.0. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
55ba09c8bf |
Remove PortalMock from Android and Apple (#2752)
It's fallen out of date and is no longer used. |
||
|
|
a309f11011 |
Fix gateway cleanup (#2704)
Yesterday, during some portion of the day connections between clients and resources were impossible. While I couldn't pinpoint the exact cause I found some issues with cleanup. This PR fixes those. Furthermore, I increased the default log level for tunnels in the clients so that if this happens again we have better logs to triage. ~~Furthermore, I found out about #2705 so, I removed the limit of relays from connlib since the portal already limits it to 2 (4 if you count per-ip), that way we make sure that we always use both ipv4 and ipv6. The connection start up time seems to slow down due to this but I think this is better. We might want to go to only 2 urls again later on to speed this up, if the portal can ensure it's a working relay load-balanced relay there might not be a point in using more than a single server~~. cc @AndrewDryga Edit: we always get an ipv4 and ipv6 address for the same relay as the first two relays in the relay list, save the case where only one of the ip types is supported. We should be safe limiting it to 2. --------- Signed-off-by: Gabi <gabrielalejandro7@gmail.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
09d1f8cd68 |
Fix Android logo and fonts (#2689)
- Use capital `F` for logo - Use Source Code Pro for font family on Android |
||
|
|
e943f2aa4c |
feat(android): Implemented share diagnostic log functionality (#2528)
Fixes #2017 - Added settings button to session screen. - Added the `Share Diagnostic Logs` button on the settings screen. - Implemented zip and share functionality. |
||
|
|
156266e7af |
build(deps): Bump com.google.firebase.appdistribution from 4.0.0 to 4.0.1 in /kotlin/android (#2562)
Bumps com.google.firebase.appdistribution from 4.0.0 to 4.0.1. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
2bca378f17 |
Allow data plane configuration at runtime (#2477)
## Changelog - Updates connlib parameter API_URL (formerly known under different names as `CONTROL_PLANE_URL`, `PORTAL_URL`, `PORTAL_WS_URL`, and friends) to be configured as an "advanced" or "hidden" feature at runtime so that we can test production builds on both staging and production. - Makes `AUTH_BASE_URL` configurable at runtime too - Moves `CONNLIB_LOG_FILTER_STRING` to be configured like this as well and simplifies its naming - Fixes a timing attack bug on Android when comparing the `csrf` token - Adds proper account ID validation to Android to prevent invalid URL parameter strings from being saved and used - Cleans up a number of UI / view issues on Android regarding typos, consistency, etc - Hides vars from from the `relay` CLI we may not want to expose just yet - `get_device_id()` is flawed for connlib components -- SMBios is rarely available. Data plane components now require a `FIREZONE_ID` now instead to use for upserting. Fixes #2482 Fixes #2471 --------- Signed-off-by: Jamil <jamilbk@users.noreply.github.com> Co-authored-by: Gabi <gabrielalejandro7@gmail.com> |
||
|
|
28e1ad1523 |
refactor(android): Refactor navigation and session functionality (#2469)
This PR refactors navigation to fix nav issues and session implementation to fix: Fixes #2300 Fixes #2186 --------- Signed-off-by: Pratik Velani <pratikvelani@gmail.com> |
||
|
|
f925898d55 |
Add CodeQL (#2476)
The CodeQL repo settings weren't sticking, so I figured I'd check our config in as a workflow instead. --------- Signed-off-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
d626f6dbf6 |
Connlib/forward dns (#2325)
With this we implement DNS forwarding that's specified in #2043 This also solve the DNS story in Android. For the headless client in Linux we still need to implement split dns, but we can make do with this, specially, we can read from resolvconf and use the forward DNS (not ideal but can work if we want a beta headless client). For the resolver I used `trusted-proto-resolver`. The other options were: * Using `domain`'s resolver but while it could work for now, it's no ideal for this since it doesn't support DoH or DoT and doesn't provide us with a DNS cache. * Using `trusted-proto-client`, it doesn't provide us with a DNS cache, though we could eventually replace it since it provides a way to access the underlying buffer which could make our code a bit simpler. * Writing our own. While we could make the API ideal, this is too much work for beta. @pratikvelani I did some refactor in the kotlin side so we can return an array of bytearrays so that we don't require parsing on connlib side, I also tried to make the dns server detector a bit simpler please take a look it's my first time doing kotlin @thomaseizinger please take a look specially at the first commit, I tried to integrate with the `poll_events` and the `ClientState`. |
||
|
|
a5cd0cf2b8 |
build(deps): Bump com.squareup.okhttp3:logging-interceptor from 4.9.1 to 4.12.0 in /kotlin/android/app (#2406)
Bumps [com.squareup.okhttp3:logging-interceptor](https://github.com/square/okhttp) from 4.9.1 to 4.12.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
6eb5478700 |
build(deps): Bump com.google.code.gson:gson from 2.9.0 to 2.10.1 in /kotlin/android (#2410)
Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.9.0 to 2.10.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/gson/releases">com.google.code.gson:gson's releases</a>.</em></p> <blockquote> <h2>Gson 2.10.1</h2> <p>This is technically a minor release rather than a patch release because there is one small API change: a new <code>JsonObject.isEmpty()</code> method.</p> <h2>What's Changed: User-Visible Changes</h2> <ul> <li><em>Added JsonObject method isEmpty()</em> by <a href="https://github.com/dhoard"><code>@dhoard</code></a> in <a href="https://redirect.github.com/google/gson/pull/2233">google/gson#2233</a></li> <li><em>Fix non-threadsafe creation of adapter for type with cyclic dependency</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/1832">google/gson#1832</a></li> <li><em>Remove EOFException special casing of JsonStreamParser.next()</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2281">google/gson#2281</a></li> <li><em>Improve exception message for duplicate field names</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2251">google/gson#2251</a></li> <li><em>Fix the javadoc of JsonDeserializer.deserialize()</em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2243">google/gson#2243</a></li> <li><em>Bump os-maven-plugin from 1.7.0 to 1.7.1</em> by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/google/gson/pull/2235">google/gson#2235</a></li> <li><em>Bump jackson-databind from 2.13.4.2 to 2.14.0</em> by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/google/gson/pull/2234">google/gson#2234</a></li> <li><em>Bump maven-release-plugin from 3.0.0-M6 to 3.0.0-M7</em> by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/google/gson/pull/2232">google/gson#2232</a></li> <li><em>Bump japicmp-maven-plugin from 0.16.0 to 0.17.1</em> by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/google/gson/pull/2238">google/gson#2238</a></li> <li><em>Bump jackson-databind from 2.14.0 to 2.14.1</em> by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/google/gson/pull/2241">google/gson#2241</a></li> <li><em>Bump bnd-maven-plugin from 6.3.1 to 6.4.0</em> by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/google/gson/pull/2245">google/gson#2245</a></li> </ul> <h2>Site Documentation and Maintenance Changes (these were already visible)</h2> <ul> <li><em>Add troubleshooting guide</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2285">google/gson#2285</a></li> <li><em>Replace custom user guide header anchors</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2289">google/gson#2289</a></li> <li><em>Improve variable names in user guide</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2290">google/gson#2290</a></li> <li><em>Add 2.10 changes to CHANGELOG; minor release follow-ups</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2229">google/gson#2229</a></li> <li><em>Mention in CHANGELOG that GitHub Releases are used in the future</em> by <a href="https://github.com/Marcono1234"><code>@Marcono1234</code></a> in <a href="https://redirect.github.com/google/gson/pull/2230">google/gson#2230</a></li> <li><em>GitHub Workflows security hardening</em> by <a href="https://github.com/sashashura"><code>@sashashura</code></a> in <a href="https://redirect.github.com/google/gson/pull/2274">google/gson#2274</a></li> </ul> <h2>Other Changes</h2> <ul> <li><em>Making consistent prefixs in PerformanceTest</em> by <a href="https://github.com/CirQ"><code>@CirQ</code></a> in <a href="https://redirect.github.com/google/gson/pull/1760">google/gson#1760</a></li> <li><em>Adjust version numbers and a test to conform to the SemVer spec.</em> by <a href="https://github.com/eamonnmcmanus"><code>@eamonnmcmanus</code></a> in <a href="https://redirect.github.com/google/gson/pull/2237">google/gson#2237</a></li> <li><em>Remove covered condition in JsonNull.equals()</em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2271">google/gson#2271</a></li> <li><em>Remove the <code>final</code> keyword from <code>private</code> method</em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2276">google/gson#2276</a></li> <li><em>Code cleanup</em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2282">google/gson#2282</a></li> <li><em>Unnecessary unboxing at JsonPrimitive.getAsBoolean()</em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2277">google/gson#2277</a></li> <li><em>Rewrite the <code>testParsingDatesFormattedWithSystemLocale()</code>, Fix <a href="https://redirect.github.com/google/gson/issues/2199">#2199</a></em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2287">google/gson#2287</a></li> <li><em>Port tests from JUnit 3 to JUnit 4</em> by <a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> in <a href="https://redirect.github.com/google/gson/pull/2294">google/gson#2294</a></li> </ul> <h2>New Contributors (thanks!)</h2> <ul> <li><a href="https://github.com/CirQ"><code>@CirQ</code></a> made their first contribution in <a href="https://redirect.github.com/google/gson/pull/1760">google/gson#1760</a></li> <li><a href="https://github.com/dhoard"><code>@dhoard</code></a> made their first contribution in <a href="https://redirect.github.com/google/gson/pull/2233">google/gson#2233</a></li> <li><a href="https://github.com/MaicolAntali"><code>@MaicolAntali</code></a> made their first contribution in <a href="https://redirect.github.com/google/gson/pull/2243">google/gson#2243</a></li> <li><a href="https://github.com/sashashura"><code>@sashashura</code></a> made their first contribution in <a href="https://redirect.github.com/google/gson/pull/2274">google/gson#2274</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/gson/compare/gson-parent-2.10...gson-parent-2.10.1">https://github.com/google/gson/compare/gson-parent-2.10...gson-parent-2.10.1</a></p> <h2>Gson 2.10</h2> <h2>Most important changes</h2> <ul> <li> <p>Support for serializing and deserializing Java records, on Java ≥ 16. (<a href="https://redirect.github.com/google/gson/issues/2201">#2201</a>)</p> </li> <li> <p>Add <code>JsonArray.asList</code> and <code>JsonObject.asMap</code> view methods (<a href="https://redirect.github.com/google/gson/issues/2225">#2225</a>)</p> </li> <li> <p>Fix <code>TypeAdapterRuntimeTypeWrapper</code> not detecting reflective <code>TreeTypeAdapter</code> and <code>FutureTypeAdapter</code> (<a href="https://redirect.github.com/google/gson/issues/1787">#1787</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/google/gson/blob/main/CHANGELOG.md">com.google.code.gson:gson's changelog</a>.</em></p> <blockquote> <h1>Change Log</h1> <p>The change log for versions newer than 2.10 is available only on the <a href="https://github.com/google/gson/releases">GitHub Releases page</a>.</p> <h2>Version 2.10</h2> <ul> <li>Support for serializing and deserializing Java records, on Java ≥ 16. (<a href="https://redirect.github.com/google/gson/pull/2201">google/gson#2201</a>)</li> <li>Add <code>JsonArray.asList</code> and <code>JsonObject.asMap</code> view methods (<a href="https://redirect.github.com/google/gson/pull/2225">google/gson#2225</a>)</li> <li>Fix <code>TypeAdapterRuntimeTypeWrapper</code> not detecting reflective <code>TreeTypeAdapter</code> and <code>FutureTypeAdapter</code> (<a href="https://redirect.github.com/google/gson/pull/1787">google/gson#1787</a>)</li> <li>Improve <code>JsonReader.skipValue()</code> (<a href="https://redirect.github.com/google/gson/pull/2062">google/gson#2062</a>)</li> <li>Perform numeric conversion for primitive numeric type adapters (<a href="https://redirect.github.com/google/gson/pull/2158">google/gson#2158</a>)</li> <li>Add <code>Gson.fromJson(..., TypeToken)</code> overloads (<a href="https://redirect.github.com/google/gson/pull/1700">google/gson#1700</a>)</li> <li>Fix changes to <code>GsonBuilder</code> affecting existing <code>Gson</code> instances (<a href="https://redirect.github.com/google/gson/pull/1815">google/gson#1815</a>)</li> <li>Make <code>JsonElement</code> conversion methods more consistent and fix javadoc (<a href="https://redirect.github.com/google/gson/pull/2178">google/gson#2178</a>)</li> <li>Throw <code>UnsupportedOperationException</code> when <code>JsonWriter.jsonValue</code> is not supported (<a href="https://redirect.github.com/google/gson/pull/1651">google/gson#1651</a>)</li> <li>Disallow <code>JsonObject</code> <code>Entry.setValue(null)</code> (<a href="https://redirect.github.com/google/gson/pull/2167">google/gson#2167</a>)</li> <li>Fix <code>TypeAdapter.toJson</code> throwing AssertionError for custom IOException (<a href="https://redirect.github.com/google/gson/pull/2172">google/gson#2172</a>)</li> <li>Convert null to JsonNull for <code>JsonArray.set</code> (<a href="https://redirect.github.com/google/gson/pull/2170">google/gson#2170</a>)</li> <li>Fixed nullSafe usage. (<a href="https://redirect.github.com/google/gson/pull/1555">google/gson#1555</a>)</li> <li>Validate <code>TypeToken.getParameterized</code> arguments (<a href="https://redirect.github.com/google/gson/pull/2166">google/gson#2166</a>)</li> <li>Fix <a href="https://redirect.github.com/google/gson/issues/1702">#1702</a>: Gson.toJson creates CharSequence which does not implement toString (<a href="https://redirect.github.com/google/gson/pull/1703">google/gson#1703</a>)</li> <li>Prefer existing adapter for concurrent <code>Gson.getAdapter</code> calls (<a href="https://redirect.github.com/google/gson/pull/2153">google/gson#2153</a>)</li> <li>Improve <code>ArrayTypeAdapter</code> for <code>Object[]</code> (<a href="https://redirect.github.com/google/gson/pull/1716">google/gson#1716</a>)</li> <li>Improve <code>AppendableWriter</code> performance (<a href="https://redirect.github.com/google/gson/pull/1706">google/gson#1706</a>)</li> </ul> <h2>Version 2.9.1</h2> <ul> <li>Make <code>Object</code> and <code>JsonElement</code> deserialization iterative rather than recursive (<a href="https://redirect.github.com/google/gson/pull/1912">google/gson#1912</a>)</li> <li>Added parsing support for enum that has overridden toString() method (<a href="https://redirect.github.com/google/gson/pull/1950">google/gson#1950</a>)</li> <li>Removed support for building Gson with Gradle (<a href="https://redirect.github.com/google/gson/pull/2081">google/gson#2081</a>)</li> <li>Removed obsolete <code>codegen</code> hierarchy (<a href="https://redirect.github.com/google/gson/pull/2099">google/gson#2099</a>)</li> <li>Add support for reflection access filter (<a href="https://redirect.github.com/google/gson/pull/1905">google/gson#1905</a>)</li> <li>Improve <code>TypeToken</code> creation validation (<a href="https://redirect.github.com/google/gson/pull/2072">google/gson#2072</a>)</li> <li>Add explicit support for <code>float</code> in <code>JsonWriter</code> (<a href="https://redirect.github.com/google/gson/pull/2130">google/gson#2130</a>, <a href="https://redirect.github.com/google/gson/pull/2132">google/gson#2132</a>)</li> <li>Fail when parsing invalid local date (<a href="https://redirect.github.com/google/gson/pull/2134">google/gson#2134</a>)</li> </ul> <p>Also many small improvements to javadoc.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c8c4a96da7 |
build(deps): Bump com.google.dagger:hilt-android from 2.48 to 2.48.1 in /kotlin/android/app (#2418)
Bumps [com.google.dagger:hilt-android](https://github.com/google/dagger) from 2.48 to 2.48.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android's releases</a>.</em></p> <blockquote> <h2>Dagger 2.48.1</h2> <h2>Bug Fixes</h2> <p>Fixes <a href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>, <a href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>: [KSP]: Fixes some incremental processing issues with KSP (c8a568956) Fixes <a href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>: [KSP] Fixes "Unexpected element" in XProcessing library (<a href=" |
||
|
|
4e62b2a52c |
build(deps): Bump com.google.dagger:hilt-android-compiler from 2.48 to 2.48.1 in /kotlin/android (#2419)
Bumps [com.google.dagger:hilt-android-compiler](https://github.com/google/dagger) from 2.48 to 2.48.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-compiler's releases</a>.</em></p> <blockquote> <h2>Dagger 2.48.1</h2> <h2>Bug Fixes</h2> <p>Fixes <a href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>, <a href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>: [KSP]: Fixes some incremental processing issues with KSP (c8a568956) Fixes <a href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>: [KSP] Fixes "Unexpected element" in XProcessing library (<a href=" |
||
|
|
febe6801cf | Fix/kotlin hilt compiler artifact issue (#2416) | ||
|
|
6153e580f3 | Specify gradle dependency versions in ONLY one place (#2399) | ||
|
|
7d455f40a5 |
build(deps): Bump com.google.dagger:hilt-android from 2.44.1 to 2.48.1 in /kotlin/android/app (#2398)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [com.google.dagger:hilt-android](https://github.com/google/dagger) from 2.44.1 to 2.48.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android's releases</a>.</em></p> <blockquote> <h2>Dagger 2.48.1</h2> <h2>Bug Fixes</h2> <p>Fixes <a href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>, <a href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>: [KSP]: Fixes some incremental processing issues with KSP (c8a568956) Fixes <a href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>: [KSP] Fixes "Unexpected element" in XProcessing library (<a href=" |
||
|
|
aa52bb424f |
build(deps): Bump com.squareup.okhttp3:okhttp from 4.10.0 to 4.12.0 in /kotlin/android (#2375)
Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 4.10.0 to 4.12.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
e7f91c49b1 |
build(deps): Bump com.google.dagger:hilt-android-compiler from 2.44.1 to 2.48.1 in /kotlin/android (#2373)
Bumps [com.google.dagger:hilt-android-compiler](https://github.com/google/dagger) from 2.44.1 to 2.48.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-compiler's releases</a>.</em></p> <blockquote> <h2>Dagger 2.48.1</h2> <h2>Bug Fixes</h2> <p>Fixes <a href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>, <a href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>: [KSP]: Fixes some incremental processing issues with KSP (c8a568956) Fixes <a href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>: [KSP] Fixes "Unexpected element" in XProcessing library (<a href=" |
||
|
|
d556a0793b |
build(deps): Bump com.squareup.moshi:moshi from 1.12.0 to 1.15.0 in /kotlin/android (#2374)
Bumps [com.squareup.moshi:moshi](https://github.com/square/moshi) from 1.12.0 to 1.15.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/square/moshi/blob/master/CHANGELOG.md">com.squareup.moshi:moshi's changelog</a>.</em></p> <blockquote> <h2>Version 1.15.0</h2> <p><em>2023-05-12</em></p> <ul> <li>Upgrade to Kotlin <code>1.8.21</code>.</li> <li>Upgrade to KSP <code>1.8.21-1.0.11</code>.</li> <li>Upgrade to kotlinx-metadata <code>0.6.0</code>.</li> <li>Upgrade to KotlinPoet <code>1.13.2</code>.</li> <li>Support Kotlin language version <code>1.9.0</code> in KAPT.</li> <li>Include name of the type being processed when creating the adapterGenerator fails in KSP.</li> <li>Suppress <code>UNUSED_PARAMETER</code> in generated code.</li> <li>Deprecate KAPT code gen. Please migrate to KSP, we will remove KAPT support in a future release. This release will also print an annoying noisy warning in KAPT processing if you use it.</li> </ul> <h2>Version 1.14.0</h2> <p><em>2022-09-06</em></p> <ul> <li>Upgrade: [Kotlin 1.7.0][kotlin_1_7_0].</li> <li>Upgrade [KotlinPoet 1.12.0][kotlinpoet_1_12_0]. <ul> <li>Moshi no longer shades kotlinpoet-ksp APIs, meaning they can be updated independently of Moshi updates.</li> </ul> </li> <li>Upgrade: [KSP 1.7.0-1.0.6][ksp_1_7_0_1_0_6].</li> <li>Upgrade: [kotlinx-metadata 0.5.0][kotlinx_metadata_0_5_0], allowing reading of kotlin 1.8 APIs too.</li> </ul> <h2>Version 1.13.0</h2> <p><em>2021-12-08</em></p> <ul> <li> <p>New: Support for [Kotlin Symbol Processing (KSP)][ksp]. KSP is an alternative to annotation processing code gen. It's builds faster and better supports Kotlin language features.</p> <p>To use KSP in your application you must enable the KSP Gradle plugin and add a KSP dependency on Moshi codegen.</p> <pre><code>plugins { id("com.google.devtools.ksp").version("1.6.0-1.0.1") } <p>dependencies { ksp("com.squareup.moshi:moshi-kotlin-codegen:1.13.0") } </code></pre></p> <p>If you're switching from annotation processing (kapt) to KSP, you should remove the kapt plugin and the kapt Moshi dependency.</p> </li> <li> <p>New: <code>@Json(ignore = true)</code> is a Moshi-specific way to exclude properties from JSON encoding and decoding.</p> </li> <li> <p>New: Support Java 16 records. (Moshi still requires Java 8 only; we're shipping a [multi-release</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
be990e7fea |
Build, sign, distribute Android app via Firebase to testers (#2332)
Build, sign, and distribute Android app for testing. Closes #2208 |
||
|
|
1c03cfc80f |
fix(android): Fixed auth redirect and clear accountId issue (#2303)
- Updated the chrome tab launch flow to fix unexpected behaviour when closing the browser. - Updated the signout functionality to not delete `accountId`. Fixes #2184 Fixes #2185 |
||
|
|
00e77062b1 |
Return fd onRemoveRoute as well (#2296)
Implements the function signatures for `onRemoveRoute` as well. Getting this error still though: <img width="1633" alt="Screenshot 2023-10-10 at 8 25 17 AM" src="https://github.com/firezone/firezone/assets/167144/3dc09f1b-10e1-401b-a1ef-64f1a09e35d5"> Android simulator, Pixel, API 34 |
||
|
|
e516bcc8dd |
connlib+android: enable fd replacement (#2235)
Should be easier to review commit by commit. The gist of this commit is: * `onAddRoute` on Android now takes an address+prefix as to minimize parsing * `onAddRoute` recreates the vpn service each time(TODO: is this too bad for performance?) * `on_add_route` and `onAddRoute` returns the new fd * on android after `on_add_route` we recreate `IfaceConfig` and `DeviceIo` and we store the new values * `peer_handler` now runs on a loop, where each time we fail a write with an error code 9(bad descriptor) we try to take the new `DeviceIo` * we keep an [`AbortHandle`](https://docs.rs/tokio/latest/tokio/task/struct.AbortHandle.html) from the `iface_handler` task, since closing the fd doesn't awake the `read` task for `AsyncFd`(I tried it, right now `close` is only called after dropping the fd) so we explicitly abort the task and start a new one with the new `device_io`. * in android `DeviceIo` has an atomic which tells if it's closed or open and we change it to closed after `on_add_route`, we use this as to never double-close the fd, instead we wait until it's dropped. This *might* affect performance on android since we use non-`Ordering::Relaxed` atomic operation each read/write but it won't affect perfromance in other platforms, furthermore I believe the performance gains if we remove this will be minimal. Fixes #2227 --------- Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
5a33e9288c |
Fix kotlin / gradle CI caching (#2266)
- Parallelize static-analysis and build - Set up cache properly to write on main and overwrite - Fix licenseHeader check - Fix linting issues |
||
|
|
da66264c84 |
Use larger builders for CPU-bound workflows (#2256)
- `ubuntu-22.04-firezone` is a 16-core builder for ~~kotlin~~ and docker - ~~`macos-13-xlarge` is an M1 builder for Apple and docker arm64~~ - Configure the Gradle build cache - Upgrade kotlin plugins, Android minSDK to 30, and gradle to 8.4 Edit: It appears that even using the largest runners for kotin and swift don't speed the builds up that much (~30%), but will substantially increase our cost, so I've reverted them to free. Fixes #2210 |
||
|
|
8dbdda9faf |
fix(android): When chrome is not installed/enabled or the default browser (#2261)
Fixes #2225 - Set Chrome app has a hard requirement for seamless user experience with app link. - Check if Chrome is not installed/enabled, then show an error toast. - If Chrome is not set as the default browser, use the Chrome stable version package name to force open the sign-in flow in Chrome. Fixes #2184 - Closing webview moves back to sign-in page. _Applinks is supported in Firefox but is disabled by default (https://support.mozilla.org/en-US/kb/set-firefox-android-open-links-native-apps) ..why 🤦♂️??_ Later based on user's browser we can update the redirected page to include instructions to enable the link, something like this:  --------- Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |
||
|
|
80234f9c71 |
Github Actions cache on main and scope caches for all languages/runtimes (#2233)
|
||
|
|
464efbad56 | refactor(connlib): restructure directory for consistency (#2236) | ||
|
|
ff1c0b950a |
Add make version command to set version in components (#2215)
Fixes #2213 This will allow us to fetch the actual Firezone version that's in use from within the language runtimes themselves without resorting to an external mechanism to do so. This is useful in connlib for example when selecting the Portal API to use with `X-Firezone-API-Version`, and useful in log printing. Since platforms enforce semantic version, I propose the convention: `1.20231001.34` where MAJOR is `1` for Firezone 1.0, MINOR is our API version, and PATCH is the release of that API version that is published on the repo. Given this system, publishing a release would consist of: 1. Edit `Makefile` to set the patch and minor versions appropriately depending on whether there are breaking portal API changes. 2. `make version` 3. `git add .; git commit; git push` -- this opens a PR with the new version numbers. In this PR we can discuss whether to stop-ship or go. 4. PR merged, release is drafted and deployed to staging with the new tag and version numbers 5. build artifacts are uploaded to drafted release, everything is tagged and versioned appropriately without having to introduce another commit 6. If all looks good, publish release |
||
|
|
1ec5678734 |
feat(android): Implemented DNS resolver fallback (#2170)
Fixes #1969 - Implements fallback DNS resolver - Added callback method to fetch DNS list --------- Signed-off-by: Pratik Velani <pratikvelani@gmail.com> Co-authored-by: Jamil <jamilbk@users.noreply.github.com> |