Commit Graph

5759 Commits

Author SHA1 Message Date
Thomas Eizinger
dbe618c080 refactor(connlib): expose &mut TRoleState for direct access (#7026)
Currently, we have a lot of stupid code to forward data from the
`{Client,Gateway}Tunnel` interface to `{Client,Gateway}State`. Recent
refactorings such as #6919 made it possible to get rid of this
forwarding layer by directly exposing `&mut TRoleState`.

To maintain some type-privacy, several functions are made generic to
accept `impl Into` or `impl TryInto`.
2024-10-15 01:05:35 +00:00
Thomas Eizinger
b1e631dd00 fix(connlib): always use ephemeral ports for TCP connections (#7025)
The ports < 1024 are reserved and should not be used for outbound TCP
connections. Generally, a port from the ephemeral port range should be
used for that.

To enforce this, we move the port range of the `dns_over_tcp::Client` to
const-generics. At present, `connlib` only uses a single port range so
we set those as the default too.
2024-10-15 00:55:01 +00:00
Thomas Eizinger
6e0194f786 refactor(connlib): mangle UDP DNS query via tunnel earlier (#7023)
UDP DNS queries for upstream resolvers that happen to be resources need
to be sent through the tunnel. For that to work correctly, `connlib`
needs to rewrite the IP header such that the destination IP points to
the actual address of the DNS server.

Currently, this happens rather "late" in the processing of the packets,
i.e. after `try_handle_dns` has returned (where that decision is
actually made). This is rather confusing and also forces us to re-parse
the packet as a DNS packet at a later stage.

To avoid this, we move main functionality of
`maybe_mangle_dns_query_to_cidr_resource` into the branch where
`connlib`'s stub DNS resolver tells us that the query needs to be
forwarded via the tunnel.

With the upcoming support of TCP DNS queries, we will have a 2nd source
of IP packets that need to go through the tunnel: Packets emitted from
our internal TCP stack. Attempting to perform the same post-processing
on these TCP packets as we do with UDP is rather confusing, which is why
we want to remove this step from the `encapsulate` function.

Resolves: #5391.
2024-10-15 00:51:57 +00:00
Thomas Eizinger
8163c8567c refactor(connlib): clarify TUN and network input functions (#7022)
Within `connlib`, the `encapsulate` and `decapsulate` functions on
`ClientState` and `GatewayState` are the entrypoint for sending and
receiving network traffic. For example, IP packets read from the TUN
device are processed using these functions.

Not all packets / traffic passed to these functions is meant to be
encrypted. Some of it is TURN traffic with relays, some of it is DNS
traffic that we intercept.

To clarify this, we rename these functions to `handle_tun_input` and
`handle_network_input`.

As part of this clarification, we also call `handle_timeout` in case we
don't emit a decrypted IP packet when handling network input. Once we
support DNS over TCP (#6944), some IP packets sent through the tunnel
will originate from DNS servers that we forwarded queries to. In that
case, those responses will be handled by `connlib`'s internal TCP stack
and thus not produce a decrypted IP packet. To correctly, advance the
state in this case, we mirror what we already do for `handle_tun_input`
and call `handle_timeout` if `handle_network_input` yields `None`.
2024-10-15 00:19:19 +00:00
dependabot[bot]
28c8b676fb build(deps): Bump axum from 0.7.6 to 0.7.7 in /rust (#6871)
Bumps [axum](https://github.com/tokio-rs/axum) from 0.7.6 to 0.7.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/axum/releases">axum's
releases</a>.</em></p>
<blockquote>
<h2>axum-extra - v0.7.7</h2>
<ul>
<li><strong>added:</strong> <code>Clone</code> implementation for
<code>ErasedJson</code> (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2142">#2142</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/axum/issues/2142">#2142</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2142">tokio-rs/axum#2142</a></p>
<h2>axum v0.7.7</h2>
<ul>
<li><strong>change</strong>: Remove manual tables of content from the
documentation, since
rustdoc now generates tables of content in the sidebar (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2921">#2921</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/axum/issues/2921">#2921</a>:
<a
href="https://redirect.github.com/tokio-rs/axum/pull/2921">tokio-rs/axum#2921</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fe56a310ef"><code>fe56a31</code></a>
Bump versions</li>
<li><a
href="ac50d7daaf"><code>ac50d7d</code></a>
docs: Remove manual tables of content (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2921">#2921</a>)</li>
<li><a
href="6f5607785d"><code>6f56077</code></a>
core: Fix compile errors from __log_rejection (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2933">#2933</a>)</li>
<li><a
href="4fc0641874"><code>4fc0641</code></a>
Upgrade private dependencies (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2935">#2935</a>)</li>
<li><a
href="6ec3a51f2d"><code>6ec3a51</code></a>
Clarify some subtleties of routing (<a
href="https://redirect.github.com/tokio-rs/axum/issues/2896">#2896</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/axum/compare/axum-v0.7.6...axum-v0.7.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axum&package-manager=cargo&previous-version=0.7.6&new-version=0.7.7)](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>
2024-10-15 00:15:51 +00:00
Thomas Eizinger
aee5019329 ci: enable unstable tokio logging for tests (#7038)
Hopefully helps in debugging #6953.
2024-10-14 22:45:03 +00:00
Thomas Eizinger
539b1c4f00 chore(connlib): don't respond on UDP DNS timeouts (#7020)
When handling DNS queries, `connlib` tries to be as transparent as
possible. For this reason, we byte-for-byte forward the DNS response
from the upstream resolver to the original source socket. In #6999, we
started modelling these DNS queries as explicit tasks in preparation for
DNS over TCP and DNS over HTTPS.

As part of that, we create a DNS response for _every_ IO error we
encounter as part of the recursive query. This includes timeouts, i.e.
when we don't receive a response at all. That actually breaks the rule
of "be a transparent DNS proxy".

In this PR, we slightly refactor the handling of the DNS response to
explicitly match on `io::Errorkind::TimedOut` to not send a packet back,
thus mirroring the behaviour the DNS client would encounter without
Firezone being active.
2024-10-14 22:33:53 +00:00
Andrew Dryga
2ab70c2f27 feat(portal): Add flash asking people to deploy more than 1 gateway to a site (#7034)
This should help with showcasing core features of our product and to
increase their adoption.

Closes #5009
2024-10-14 15:50:19 -06:00
Andrew Dryga
7245652671 fix(portal): Make sure modals start with Confirm.. (#7032)
Closes #6713
2024-10-14 14:05:33 -06:00
Andrew Dryga
f89cc67fda fix(portal): Fix copy-paste buttons (#7033)
- Added semi-transparent shadow to the button so that it's more visible
when text is overlapping it. Padding did not look well because it
required scrollbar to be moved inside the parent container and it looked
very ugly
- Replaced custom phx hook with a new native Tailwind component

Closes #5973
2024-10-14 14:05:14 -06:00
Thomas Eizinger
05e895525b chore: set simpler default log filters (#7028)
Follow-up from #6985 to simplify our log filters everywhere. If any of
this doesn't fit, we should adjust the things here:


17ea827c03/rust/logging/src/lib.rs (L32-L40)
2024-10-14 18:54:36 +00:00
Thomas Eizinger
f9bf681e64 refactor(connlib): track UDP DNS query source in query meta data (#7018)
When performing recursive DNS queries over UDP, `connlib` needs to
remember the original source socket a particular query came from in
order to send the response back to the correct socket. Until now, this
was tracked in a separate `HashMap`, indexed by upstream server and
query ID.

When DNS queries are being retried, they may be resent using the same
query ID, causing "Unknown query" logs if the retry happens on a shorter
interval than the timeout of our recursive query.

We are already tracking a bunch of meta data along-side the actual
query, meaning we can just as easily add the original source socket to
that as well.

Once we add TCP DNS queries, we will need to track the handle of the TCP
socket in a similar manner.
2024-10-14 18:38:39 +00:00
Thomas Eizinger
857bbf5d98 chore(connlib): introduce custom logging format (#7024)
This PR introduces a custom logging format for all Rust-components. It
is more or less a copy of `tracing_subscriber::fmt::format::Compact`
with the main difference that span-names don't get logged.

Spans are super useful because they allow us to record contextual
values, like the current connection ID, for a certain scope. What is IMO
less useful about them is that in the default formatter configuration,
active spans cause a right-drift of the actual log message.

The actual log message is still what most accurately describes, what
`connlib` is currently doing. Spans only add contextual information that
the reader may use for further understand what is happening. This
optional nature of the utility of spans IMO means that they should come
_after_ the actual log message.

Resolves: #7014.
2024-10-14 18:09:38 +00:00
Andrew Dryga
1abfa10fb7 fix(portal): UX improvements (#7013)
This PR accumulates lots of small UX fixes from #6645.

---------

Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2024-10-14 11:32:44 -06:00
Jamil
ce11f26fca chore(ci): Bump website deps (#7017) 2024-10-13 01:23:17 -10:00
Jamil
6415ef64c1 docs: Document how device serial is read (#6875)
refs #6837

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Andrew Dryga <a@firezone.dev>
2024-10-12 23:34:25 -10:00
Brian Manifold
41d1916cc7 fix(portal): Fix outdated gateway notification to respect enable/disable status (#7016)
Realized the enable/disable setting wasn't being respected for the
outdated gateway notification. This PR should fix that issue.
2024-10-13 06:38:28 +00:00
dependabot[bot]
67462f73ad build(deps): Bump hashicorp/null from 3.2.2 to 3.2.3 in /terraform/environments/staging (#6888)
Bumps
[hashicorp/null](https://github.com/hashicorp/terraform-provider-null)
from 3.2.2 to 3.2.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-null/releases">hashicorp/null's
releases</a>.</em></p>
<blockquote>
<h2>v3.2.3</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/366">#366</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-null/blob/main/CHANGELOG.md">hashicorp/null's
changelog</a>.</em></p>
<blockquote>
<h2>3.2.3 (September 11, 2024)</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/366">#366</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="285a12ea99"><code>285a12e</code></a>
Update changelog</li>
<li><a
href="3a343a6f51"><code>3a343a6</code></a>
all: Bump minimum Go module version to 1.22 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/366">#366</a>)</li>
<li><a
href="684541ef22"><code>684541e</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/367">#367</a>)</li>
<li><a
href="2aa8c91d05"><code>2aa8c91</code></a>
build(deps): Bump hashicorp/setup-terraform from 3.1.1 to 3.1.2 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/365">#365</a>)</li>
<li><a
href="0e2b82f3e5"><code>0e2b82f</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/364">#364</a>)</li>
<li><a
href="57803babc1"><code>57803ba</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/363">#363</a>)</li>
<li><a
href="964bf17dfa"><code>964bf17</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-testing (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/362">#362</a>)</li>
<li><a
href="9bf257f9f9"><code>9bf257f</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-framework (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/361">#361</a>)</li>
<li><a
href="45dcb2fbf5"><code>45dcb2f</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/360">#360</a>)</li>
<li><a
href="8234f95089"><code>8234f95</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-null/issues/359">#359</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/terraform-provider-null/compare/v3.2.2...v3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hashicorp/null&package-manager=terraform&previous-version=3.2.2&new-version=3.2.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>
2024-10-12 17:32:55 -10:00
dependabot[bot]
53f1bb0f78 build(deps): Bump hashicorp/tls from 4.0.5 to 4.0.6 in /terraform/environments/staging (#6887)
Bumps
[hashicorp/tls](https://github.com/hashicorp/terraform-provider-tls)
from 4.0.5 to 4.0.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-tls/releases">hashicorp/tls's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.6</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/552">#552</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-tls/blob/main/CHANGELOG.md">hashicorp/tls's
changelog</a>.</em></p>
<blockquote>
<h2>4.0.6 (September 11, 2024)</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/552">#552</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6a386292e0"><code>6a38629</code></a>
Update changelog</li>
<li><a
href="4439312f97"><code>4439312</code></a>
all: Bump minimum Go module version to 1.22 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/552">#552</a>)</li>
<li><a
href="de8d9e615a"><code>de8d9e6</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/553">#553</a>)</li>
<li><a
href="da12f9a072"><code>da12f9a</code></a>
build(deps): Bump golang.org/x/net from 0.28.0 to 0.29.0 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/551">#551</a>)</li>
<li><a
href="2d77e34834"><code>2d77e34</code></a>
build(deps): Bump hashicorp/setup-terraform from 3.1.1 to 3.1.2 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/549">#549</a>)</li>
<li><a
href="041997c328"><code>041997c</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/547">#547</a>)</li>
<li><a
href="b9d9d41e4d"><code>b9d9d41</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/546">#546</a>)</li>
<li><a
href="7dece459c7"><code>7dece45</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-testing (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/545">#545</a>)</li>
<li><a
href="d6d44c8584"><code>d6d44c8</code></a>
build(deps): Bump golang.org/x/net from 0.27.0 to 0.28.0 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/544">#544</a>)</li>
<li><a
href="f8fbdd6bd9"><code>f8fbdd6</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-framework from
1.10.0...</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/terraform-provider-tls/compare/v4.0.5...v4.0.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hashicorp/tls&package-manager=terraform&previous-version=4.0.5&new-version=4.0.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>
2024-10-12 17:32:45 -10:00
dependabot[bot]
3c86d519fc build(deps): Bump cyrilgdn/postgresql from 1.22 to 1.23.0 in /terraform/environments/staging (#6886)
Bumps
[cyrilgdn/postgresql](https://github.com/cyrilgdn/terraform-provider-postgresql)
from 1.22 to 1.23.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cyrilgdn/terraform-provider-postgresql/releases">cyrilgdn/postgresql's
releases</a>.</em></p>
<blockquote>
<h2>v1.23.0</h2>
<h2>What's Changed</h2>
<ul>
<li><strong>Add support for GCP IAM impersonation by <a
href="https://github.com/michaellzc"><code>@​michaellzc</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/448">cyrilgdn/terraform-provider-postgresql#448</a></strong></li>
<li><strong>postgresql_database: Reassign objects owners if database
owner changes by <a
href="https://github.com/lukaalba"><code>@​lukaalba</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/458">cyrilgdn/terraform-provider-postgresql#458</a></strong></li>
<li>update documentation by <a
href="https://github.com/manu-akw"><code>@​manu-akw</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/455">cyrilgdn/terraform-provider-postgresql#455</a></li>
<li>build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity
from 1.3.0 to 1.6.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/447">cyrilgdn/terraform-provider-postgresql#447</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/421">cyrilgdn/terraform-provider-postgresql#421</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/manu-akw"><code>@​manu-akw</code></a>
made their first contribution in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/455">cyrilgdn/terraform-provider-postgresql#455</a></li>
<li><a
href="https://github.com/michaellzc"><code>@​michaellzc</code></a> made
their first contribution in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/448">cyrilgdn/terraform-provider-postgresql#448</a></li>
<li><a href="https://github.com/lukaalba"><code>@​lukaalba</code></a>
made their first contribution in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/458">cyrilgdn/terraform-provider-postgresql#458</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cyrilgdn/terraform-provider-postgresql/compare/v1.22.0...v1.23.0">https://github.com/cyrilgdn/terraform-provider-postgresql/compare/v1.22.0...v1.23.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dea1401819"><code>dea1401</code></a>
chore: bump goreleaser actions</li>
<li><a
href="59a36ae283"><code>59a36ae</code></a>
postgresql_database: Reassign objects owners if database owner changes
(<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/458">#458</a>)</li>
<li><a
href="c3f634b678"><code>c3f634b</code></a>
Add support for GCP IAM impersonation (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/448">#448</a>)</li>
<li><a
href="b23202a83d"><code>b23202a</code></a>
Update AWS documentation (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/455">#455</a>)</li>
<li><a
href="5213579e05"><code>5213579</code></a>
build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0 (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/421">#421</a>)</li>
<li><a
href="f3024f2152"><code>f3024f2</code></a>
build(deps): bump azidentity from 1.3.0 to 1.6.0 (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/447">#447</a>)</li>
<li><a
href="f46ec22118"><code>f46ec22</code></a>
rename master branch to main</li>
<li>See full diff in <a
href="https://github.com/cyrilgdn/terraform-provider-postgresql/compare/v1.22.0...v1.23.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cyrilgdn/postgresql&package-manager=terraform&previous-version=1.22&new-version=1.23.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>
2024-10-12 17:32:36 -10:00
dependabot[bot]
4133c3fe65 build(deps): Bump cyrilgdn/postgresql from 1.22.0 to 1.23.0 in /terraform/environments/production (#6879)
Bumps
[cyrilgdn/postgresql](https://github.com/cyrilgdn/terraform-provider-postgresql)
from 1.22.0 to 1.23.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cyrilgdn/terraform-provider-postgresql/releases">cyrilgdn/postgresql's
releases</a>.</em></p>
<blockquote>
<h2>v1.23.0</h2>
<h2>What's Changed</h2>
<ul>
<li><strong>Add support for GCP IAM impersonation by <a
href="https://github.com/michaellzc"><code>@​michaellzc</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/448">cyrilgdn/terraform-provider-postgresql#448</a></strong></li>
<li><strong>postgresql_database: Reassign objects owners if database
owner changes by <a
href="https://github.com/lukaalba"><code>@​lukaalba</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/458">cyrilgdn/terraform-provider-postgresql#458</a></strong></li>
<li>update documentation by <a
href="https://github.com/manu-akw"><code>@​manu-akw</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/455">cyrilgdn/terraform-provider-postgresql#455</a></li>
<li>build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity
from 1.3.0 to 1.6.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/447">cyrilgdn/terraform-provider-postgresql#447</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/421">cyrilgdn/terraform-provider-postgresql#421</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/manu-akw"><code>@​manu-akw</code></a>
made their first contribution in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/455">cyrilgdn/terraform-provider-postgresql#455</a></li>
<li><a
href="https://github.com/michaellzc"><code>@​michaellzc</code></a> made
their first contribution in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/448">cyrilgdn/terraform-provider-postgresql#448</a></li>
<li><a href="https://github.com/lukaalba"><code>@​lukaalba</code></a>
made their first contribution in <a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/pull/458">cyrilgdn/terraform-provider-postgresql#458</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cyrilgdn/terraform-provider-postgresql/compare/v1.22.0...v1.23.0">https://github.com/cyrilgdn/terraform-provider-postgresql/compare/v1.22.0...v1.23.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dea1401819"><code>dea1401</code></a>
chore: bump goreleaser actions</li>
<li><a
href="59a36ae283"><code>59a36ae</code></a>
postgresql_database: Reassign objects owners if database owner changes
(<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/458">#458</a>)</li>
<li><a
href="c3f634b678"><code>c3f634b</code></a>
Add support for GCP IAM impersonation (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/448">#448</a>)</li>
<li><a
href="b23202a83d"><code>b23202a</code></a>
Update AWS documentation (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/455">#455</a>)</li>
<li><a
href="5213579e05"><code>5213579</code></a>
build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0 (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/421">#421</a>)</li>
<li><a
href="f3024f2152"><code>f3024f2</code></a>
build(deps): bump azidentity from 1.3.0 to 1.6.0 (<a
href="https://redirect.github.com/cyrilgdn/terraform-provider-postgresql/issues/447">#447</a>)</li>
<li><a
href="f46ec22118"><code>f46ec22</code></a>
rename master branch to main</li>
<li>See full diff in <a
href="https://github.com/cyrilgdn/terraform-provider-postgresql/compare/v1.22.0...v1.23.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cyrilgdn/postgresql&package-manager=terraform&previous-version=1.22.0&new-version=1.23.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>
2024-10-12 17:31:23 -10:00
dependabot[bot]
189a70c75f build(deps): Bump hashicorp/tls from 4.0.5 to 4.0.6 in /terraform/environments/production (#6878)
Bumps
[hashicorp/tls](https://github.com/hashicorp/terraform-provider-tls)
from 4.0.5 to 4.0.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-tls/releases">hashicorp/tls's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.6</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/552">#552</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-tls/blob/main/CHANGELOG.md">hashicorp/tls's
changelog</a>.</em></p>
<blockquote>
<h2>4.0.6 (September 11, 2024)</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/552">#552</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6a386292e0"><code>6a38629</code></a>
Update changelog</li>
<li><a
href="4439312f97"><code>4439312</code></a>
all: Bump minimum Go module version to 1.22 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/552">#552</a>)</li>
<li><a
href="de8d9e615a"><code>de8d9e6</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/553">#553</a>)</li>
<li><a
href="da12f9a072"><code>da12f9a</code></a>
build(deps): Bump golang.org/x/net from 0.28.0 to 0.29.0 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/551">#551</a>)</li>
<li><a
href="2d77e34834"><code>2d77e34</code></a>
build(deps): Bump hashicorp/setup-terraform from 3.1.1 to 3.1.2 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/549">#549</a>)</li>
<li><a
href="041997c328"><code>041997c</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/547">#547</a>)</li>
<li><a
href="b9d9d41e4d"><code>b9d9d41</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/546">#546</a>)</li>
<li><a
href="7dece459c7"><code>7dece45</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-testing (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/545">#545</a>)</li>
<li><a
href="d6d44c8584"><code>d6d44c8</code></a>
build(deps): Bump golang.org/x/net from 0.27.0 to 0.28.0 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-tls/issues/544">#544</a>)</li>
<li><a
href="f8fbdd6bd9"><code>f8fbdd6</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-framework from
1.10.0...</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/terraform-provider-tls/compare/v4.0.5...v4.0.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hashicorp/tls&package-manager=terraform&previous-version=4.0.5&new-version=4.0.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>
2024-10-12 17:30:26 -10:00
dependabot[bot]
bddae223c5 build(deps): Bump hashicorp/random from 3.6.2 to 3.6.3 in /terraform/environments/production (#6877)
Bumps
[hashicorp/random](https://github.com/hashicorp/terraform-provider-random)
from 3.6.2 to 3.6.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-random/releases">hashicorp/random's
releases</a>.</em></p>
<blockquote>
<h2>v3.6.3</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/604">#604</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-provider-random/blob/main/CHANGELOG.md">hashicorp/random's
changelog</a>.</em></p>
<blockquote>
<h2>3.6.3 (September 11, 2024)</h2>
<p>NOTES:</p>
<ul>
<li>all: This release introduces no functional changes. It does however
include dependency updates which address upstream CVEs. (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/604">#604</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e546ae44b4"><code>e546ae4</code></a>
Update changelog</li>
<li><a
href="9c49289132"><code>9c49289</code></a>
all: Bump minimum Go module version to 1.22 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/604">#604</a>)</li>
<li><a
href="635ccbe4d5"><code>635ccbe</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/605">#605</a>)</li>
<li><a
href="f00d9f6640"><code>f00d9f6</code></a>
build(deps): Bump golang.org/x/crypto from 0.26.0 to 0.27.0 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/603">#603</a>)</li>
<li><a
href="ebb0ae2ad9"><code>ebb0ae2</code></a>
build(deps): Bump hashicorp/setup-terraform from 3.1.1 to 3.1.2 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/602">#602</a>)</li>
<li><a
href="523efdf457"><code>523efdf</code></a>
SEC-090: Automated trusted workflow pinning (2024-08-19) (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/601">#601</a>)</li>
<li><a
href="b6364dab24"><code>b6364da</code></a>
Result of tsccr-helper -log-level=info gha update -latest . (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/600">#600</a>)</li>
<li><a
href="3c20ad7e5f"><code>3c20ad7</code></a>
testing: Update acceptance tests to use new <code>statecheck</code>
package and value co...</li>
<li><a
href="8b6cb37368"><code>8b6cb37</code></a>
build(deps): Bump golang.org/x/crypto from 0.25.0 to 0.26.0 (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/598">#598</a>)</li>
<li><a
href="5c81757d4a"><code>5c81757</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-framework (<a
href="https://redirect.github.com/hashicorp/terraform-provider-random/issues/597">#597</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/terraform-provider-random/compare/v3.6.2...v3.6.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hashicorp/random&package-manager=terraform&previous-version=3.6.2&new-version=3.6.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>
2024-10-12 17:30:03 -10:00
Jamil
a1f4eaf5d3 fix(ci): Bump terraform to fix CI (#7012)
The versions used in CI and in our config need to match.
2024-10-11 14:49:38 -10:00
Thomas Eizinger
9302331881 refactor(connlib): create new UDP socket for each DNS query (#6999)
This extracts the initial refactoring required for #6944. Currently,
`connlib` sends all DNS queries over the same UDP socket as all the p2p
traffic for gateways and relays. In an earlier design of `connlib`, we
already did something similar as we are doing here but using
`hickory_resolver` for the actual DNS resolution.

Instead of depending on hickory, we implement DNS resolution ourselves
by sending a UDP DNS query to the mapped upstream DNS server. There are
no retries, instead, we rely on the original DNS client to retry in case
a packet gets lost on the way.

Modelling recursive DNS queries as explicit events from the
`ClientState` is necessary for implement DNS over TCP and DNS over
HTTPS. In both cases, the query to the upstream server isn't as simple
as emitting a `Transmit`. By modelling the query as an `async fn` within
`Io`, it will be possible to perform them all in one place.

Resolves: #6297.
2024-10-11 22:33:22 +00:00
Thomas Eizinger
274cc86557 chore(connlib): add sans-IO DNS-over-TCP client (#7007)
This brings us one step closer to completing #6140. In Firezone, users
can define custom upstream DNS servers that take priority over
system-defined DNS servers. The IPs of these servers could also be
resources, meaning the DNS queries must be sent through the WireGuard
tunnel to the gateway.

For UDP DNS queries, that is easy because each query is only a single
packet. For TCP DNS queries, we need to have a dedicated TCP-capable DNS
server that parses all incoming queries. If they are required to be
forwarded to the gateway, we then need a TCP-capable DNS client that can
send them to the actual upstream DNS server.

This PR implements such a DNS client. The design is tailored for what we
need in `connlib`: We maintain a permanent TCP connection to each
upstream DNS server and send queries to them. Most likely, users will
only have a handful of DNS servers defined. TCP requires a three-way
handshake before any application data can be sent, maintaining a
connection should therefore greatly improve DNS resolution latency.

DNS resolvers are encouraged to keep TCP connections open but may close
them if they run out of resources. We only re-connect once we have more
queries to send in order to not spam the resolver with connections.

Resolves: #7000.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
2024-10-11 22:04:45 +00:00
Brian Manifold
7838da9739 fix(portal): Prevent upstream DNS config from using sentinel CIDR ranges (#7010)
Closes #6962
2024-10-11 21:15:29 +00:00
Reactor Scram
f1cd137e24 feat(rust/gui-client/windows): sign the IPC service exe (#7009)
Closes #7008.

We already signed the GUI exe and the entire MSI package, but when
adding the IPC service we overlooked that one.
This PR:
- Modifies the signing script to accept multiple EXEs
- Modifies the Tauri bundle command to sign both exes
- Updates the changelog

![image](https://github.com/user-attachments/assets/ba58c540-dd0c-42b4-ba62-9c96fc4682c5)
2024-10-11 20:32:50 +00:00
Reactor Scram
df94750d4a chore(asdf-vm): add shfmt in .tool-versions (#7006)
This is used for pre-commit so the version should be specified here

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-10-11 14:49:14 +00:00
Thomas Eizinger
b40f7d4c62 chore(connlib): trim TRACE logs for DNS resource matching (#6983)
Currently, we emit a single TRACE log for each DNS resource entry that
doesn't match. This is quite spammy and often not needed.

When debugging DNS resources, it is useful to know, which resources we
are matching against. To balance this, we now build a list of all DNS
resource domain patterns that we have and log a single "No resources
matched" log with that list in case none match.
2024-10-11 14:31:06 +00:00
Brian Manifold
7fda4c52c4 feat(portal): Add outdated gateway notifications (#6841)
Why:

* Without some type of notification, users do not realize that new
Gateway versions have been released and thus do not seem to be upgrading
their deployed Gateways.
2024-10-11 12:46:00 +00:00
Thomas Eizinger
cd2dea7846 chore: add sans-IO DNS-over-TCP implementation (#6997)
This splits out the actual DNS server from #6944 into a separate crate.
At present, it only contains a DNS server. Later, we will likely add a
DNS client to it as well because the proptests and connlib itself will
need a user-space DNS TCP client.

The implementation uses `smoltcp` but that is entirely encapsulated. The
`Server` struct exposes only a high-level interface for

- feeding inbound packets as well as retrieving outbound packets
- retrieving parsed DNS queries and sending DNS responses

Related: #6140.
2024-10-10 21:05:12 +00:00
Thomas Eizinger
8c4f6bdb0f chore(gateway): don't log WouldBlock on WARN (#6984)
This mirrors what we do on the clients, there is no need to log
`WouldBlock` on `WARN` as those can happen during normal operation.
2024-10-10 19:50:54 +00:00
Jamil
40fa46780f fix(android): Bump AGP to 8.7.0 to fix build on macOS (#6998)
Bumps AGP to 8.7.0 to fix the following error with recent versions of
Android Studio / gradle:

```
Caused by: java.io.IOException: Cannot run program "rustc" (in directory "/Users/jamil/Developer/firezone/firezone/kotlin/android/app"): error=2, No such file or directory
        at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
        ... 7 more
Caused by: java.io.IOException: error=2, No such file or directory
```

Also removes dead code and enables verbose output to make it easier to
catch problems like this in the future.
2024-10-10 19:42:00 +00:00
Brian Manifold
4dde7293d5 fix(portal): Fix show page errors when entity was created by API (#7002)
Why:

* A handful of 'show' pages were throwing errors for entities created
using the API. The reason was due to the fact that the
`created_by_actor` was not being preloaded and when the details on the
show page were being rendered. This commit updates the various pages to
preload the `created_by_actor` to allow for both API created entities
and UI created entities.
2024-10-10 15:44:53 +00:00
Andrew Dryga
945b5813a0 fix(portal): Make DNS address validations more strict (#6991)
Closes ##6981
2024-10-10 09:10:00 -06:00
Jamil
7c02c34d73 chore(android): Bump gradle to 8.10.2 to be compatible with latest Android app package (#6994)
Will fix the CI failure in #6975
2024-10-09 23:36:42 +00:00
Reactor Scram
0d134a4f01 chore(rust/gui-client): bump GUI to 1.3.9 to fix a crash (#6993)
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-10-09 21:44:40 +00:00
dependabot[bot]
75808a8230 build(deps): Bump androidx.navigation:navigation-safe-args-gradle-plugin from 2.8.1 to 2.8.2 in /kotlin/android (#6978)
Bumps androidx.navigation:navigation-safe-args-gradle-plugin from 2.8.1
to 2.8.2.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.navigation:navigation-safe-args-gradle-plugin&package-manager=gradle&previous-version=2.8.1&new-version=2.8.2)](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>
2024-10-09 21:26:41 +00:00
dependabot[bot]
283d011f24 build(deps): Bump androidx.navigation:navigation-testing from 2.8.1 to 2.8.2 in /kotlin/android (#6979)
Bumps androidx.navigation:navigation-testing from 2.8.1 to 2.8.2.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.navigation:navigation-testing&package-manager=gradle&previous-version=2.8.1&new-version=2.8.2)](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>
2024-10-09 21:23:22 +00:00
dependabot[bot]
f8b6b0f6e2 build(deps): Bump com.google.firebase:firebase-bom from 33.3.0 to 33.4.0 in /kotlin/android (#6977)
Bumps com.google.firebase:firebase-bom from 33.3.0 to 33.4.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=33.3.0&new-version=33.4.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>
2024-10-09 21:19:16 +00:00
Thomas Eizinger
2203978d08 chore(android): simplify default log filter (#6985)
With the introduction of `firezone-logging`, we provide a default filter
that silences irrelevant crates:
17ea827c03/rust/logging/src/lib.rs (L32-L40).
Thus, it is safe to just set the default filter to `info` for production
and `debug` for development.
2024-10-09 20:43:26 +00:00
Thomas Eizinger
0825055ff2 fix(rust/gui-client): allow GUI process to read the firezone-id file from disk (#6987)
Closes #6989

- The tunnel daemon (IPC service) now explicitly sets the ID file's
perms to 0o640, even if the file already exists.
- The GUI error is now non-fatal. If the file can't be read, we just
won't get the device ID in Sentry.
- More specific error message when the GUI fails to read the ID file

We attempted to set the tunnel daemon's umask, but this caused the smoke
tests to fail. Fixing the regression is more urgent than getting the
smoke tests to match local debugging.

---------

Co-authored-by: _ <ReactorScram@users.noreply.github.com>
2024-10-09 20:04:24 +00:00
Jamil
f5362ce009 docs: Remove known DoH issue with Firefox (#6832)
This has been a long-standing issue.

The base PR fixes the issue for Firefox, and apparently all other
browsers will _not_ change your DNS server, only opportunistically
enable DoH if it finds your current servers to support it.
2024-10-09 19:31:38 +00:00
dependabot[bot]
7563bbf2f8 build(deps): Bump the navigation group in /kotlin/android with 2 updates (#6976)
Bumps the navigation group in /kotlin/android with 2 updates:
androidx.navigation:navigation-fragment-ktx and
androidx.navigation:navigation-ui-ktx.

Updates `androidx.navigation:navigation-fragment-ktx` from 2.8.1 to
2.8.2

Updates `androidx.navigation:navigation-ui-ktx` from 2.8.1 to 2.8.2


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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 18:50:45 +00:00
dependabot[bot]
9f2a2c4172 build(deps): Bump micromatch from 4.0.7 to 4.0.8 in /website in the npm_and_yarn group (#6934)
Bumps the npm_and_yarn group in /website with 1 update:
[micromatch](https://github.com/micromatch/micromatch).

Updates `micromatch` from 4.0.7 to 4.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/micromatch/micromatch/releases">micromatch's
releases</a>.</em></p>
<blockquote>
<h2>4.0.8</h2>
<p>Ultimate release that fixes both CVE-2024-4067 and CVE-2024-4068. We
consider the issues low-priority, so even if you see automated scanners
saying otherwise, don't be scared.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md">micromatch's
changelog</a>.</em></p>
<blockquote>
<h2>[4.0.8] - 2024-08-22</h2>
<ul>
<li>backported CVE-2024-4067 fix (from v4.0.6) over to 4.x branch</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8bd704ec0d"><code>8bd704e</code></a>
4.0.8</li>
<li><a
href="a0e68416a4"><code>a0e6841</code></a>
run verb to generate README documentation</li>
<li><a
href="4ec288484f"><code>4ec2884</code></a>
Merge branch 'v4' into hauserkristof-feature/v4.0.8</li>
<li><a
href="03aa805217"><code>03aa805</code></a>
Merge pull request <a
href="https://redirect.github.com/micromatch/micromatch/issues/266">#266</a>
from hauserkristof/feature/v4.0.8</li>
<li><a
href="814f5f70ef"><code>814f5f7</code></a>
lint</li>
<li><a
href="67fcce6a10"><code>67fcce6</code></a>
fix: CHANGELOG about braces &amp; CVE-2024-4068, v4.0.5</li>
<li><a
href="113f2e3fa7"><code>113f2e3</code></a>
fix: CVE numbers in CHANGELOG</li>
<li><a
href="d9dbd9a266"><code>d9dbd9a</code></a>
feat: updated CHANGELOG</li>
<li><a
href="2ab13157f4"><code>2ab1315</code></a>
fix: use actions/setup-node@v4</li>
<li><a
href="1406ea38f3"><code>1406ea3</code></a>
feat: rework test to work on macos with node 10,12 and 14</li>
<li>Additional commits viewable in <a
href="https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=micromatch&package-manager=npm_and_yarn&previous-version=4.0.7&new-version=4.0.8)](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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/firezone/firezone/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 18:49:52 +00:00
Thomas Eizinger
791516db60 docs: gather useful tools for working on / with Firezone (#6986)
I wasn't quite sure where else to document this but I figured it is
useful to collect these as some kind of wiki for other devs.
2024-10-09 16:53:50 +00:00
Thomas Eizinger
17ea827c03 build(rust): bump str0m (#6966)
This includes fixes such as https://github.com/algesten/str0m/pull/569
which reduce the number of packets sent by str0m.
2024-10-09 02:09:34 +00:00
Thomas Eizinger
590edad8fc build(rust): bump proptest (#6965)
With the latest version of `proptest-state-machine`, we no longer need
to use their traits because `Sequential::new` is now exposed. This makes
the overall things less magical because there is less indirection.
2024-10-09 02:08:50 +00:00
Thomas Eizinger
355726db7a refactor(connlib): clarify design of p2p control protocol (#6980)
This incorporates the feedback from #6939 after a discussion with
@conectado. We agreed that the protocol should be more event-based,
where each message has its own event type. Events MAY appear in pairs or
other cardinality combinations, meaning semantically they could be seen
as requests and responses. In general though, due to the unreliable
nature of IP, it is better to view them as events. Events are typically
designed to be idempotent which is important to make this protocol work.
Using events also means it is not as easy to fall into the "trap" of
modelling requests / responses on the control protocol level.
2024-10-09 00:45:30 +00:00