Skip to content

fix: show correct environments types in filter - #2578

Merged
kmendell merged 1 commit into
mainfrom
fix/env-types
May 12, 2026
Merged

kmendell merged 1 commit into
mainfrom
fix/env-types

Conversation

@kmendell

@kmendell kmendell commented May 12, 2026 •

Copy link
Copy Markdown
Member

Checklist

  • This PR is not opened from my fork’s main branch

What This PR Implements

Fixes: #2569

Changes Made

Testing Done

  • Development environment started: ./scripts/development/dev.sh start
  • Frontend verified at http://localhost:3000
  • Backend verified at http://localhost:3552
  • Manual testing completed (describe):
  • No linting errors (e.g., just lint all)
  • Backend tests pass: just test backend

AI Tool Used (if applicable)

AI Tool:
Assistance Level:
What AI helped with:
I reviewed and edited all AI-generated output:
I ran all required tests and manually verified changes:

Additional Context

Disclaimer Greptiles Reviews use AI, make sure to check over its work.

To better help train Greptile on our codebase, if the comment is useful and valid Like the comment, if its not helpful or invalid Dislike

To have Greptile Re-Review the changes, mention greptileai.

Greptile Summary

This PR adds server-side type-based filtering for the environments and templates tables. Because an environment's "type" (HTTP, Edge, WebSocket, gRPC, Polling) is determined from in-memory runtime state rather than a database column, the backend introduces a separate in-memory pagination path when a type filter is active.

  • Backend (environments): Adds a type query parameter to ListEnvironmentsInput, routes to listEnvironmentsPaginatedWithRuntimeFiltersInternal when the filter is set, fetches all non-hidden environments, applies runtime state, then filters/sorts/paginates in memory.
  • Backend (templates): Threads the existing type filter through the new ListTemplatesInput field to the already-capable template service.
  • Frontend: Refactors the table toolbar to read filterOptions from each column's meta instead of a hardcoded global, enabling per-table filter UIs.

Confidence Score: 5/5

Safe to merge — the change is additive, well-tested, and follows existing pagination patterns throughout the codebase.

The in-memory filtering path correctly applies runtime state before filtering, the comma-separated multi-value filter is handled by the existing pagination matchValue helper, and the frontend end-to-end path is consistent. Test coverage covers all five environment types and multi-value selection. No logic errors or edge-case gaps were found.

No files require special attention. The most novel file is environment_service.go, where the new in-memory path fetches all environments before filtering — a necessary trade-off for runtime-state-based type classification that is adequately exercised by the new tests.

Reviews (1): Last reviewed commit: "fix: show correct environments types in ..." | Re-trigger Greptile

@kmendell
kmendell marked this pull request as ready for review May 12, 2026 01:27
@kmendell
kmendell requested a review from a team May 12, 2026 01:27

kmendell commented May 12, 2026 •

Copy link
Copy Markdown
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@getarcaneappbot

Copy link
Copy Markdown
Contributor

Container images for this PR have been built successfully!

  • Manager: ghcr.io/getarcaneapp/arcane:pr-2578
  • Agent: ghcr.io/getarcaneapp/arcane-headless:pr-2578

Built from commit 282ade6

@kmendell
kmendell merged commit 9065552 into main May 12, 2026
27 checks passed
@kmendell
kmendell deleted the fix/env-types branch May 12, 2026 01:45
mombe090 pushed a commit to mombe090/mombe090.github.io that referenced this pull request Oct 19, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update |
|---|---|---|---|---|---|
| [boto3](https://github.com/boto/boto3) | `>=1.43.6` → `>=1.43.7` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/boto3/1.43.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/boto3/1.43.6/1.43.7?slim=true) | project.dependencies | patch |
| [docker/dockerfile](https://github.com/moby/buildkit) | `1.23` → `1.24` | ![age](https://developer.mend.io/api/mc/badges/age/docker/docker%2fdockerfile/1.24?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/docker%2fdockerfile/1.23/1.24?slim=true) | syntax | minor |
| [ghcr.io/getarcaneapp/arcane](https://github.com/getarcaneapp/arcane) | `v1.19.0` → `v1.19.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/ghcr.io%2fgetarcaneapp%2farcane/v1.19.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/ghcr.io%2fgetarcaneapp%2farcane/v1.19.0/v1.19.1?slim=true) |  | patch |
| [n8nio/n8n](https://n8n.io) ([source](https://github.com/n8n-io/n8n)) | `2.21.0` → `2.21.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/n8nio%2fn8n/2.21.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/n8nio%2fn8n/2.21.0/2.21.1?slim=true) |  | patch |
| nginx | `1.30-alpine3.23` → `1.31-alpine3.23` | ![age](https://developer.mend.io/api/mc/badges/age/docker/nginx/1.31?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/nginx/1.30/1.31?slim=true) | final | minor |
| nginx | `1.30-alpine` → `1.31-alpine` | ![age](https://developer.mend.io/api/mc/badges/age/docker/nginx/1.31?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/nginx/1.30/1.31?slim=true) | final | minor |
| [paramiko](https://github.com/paramiko/paramiko) ([changelog](https://www.paramiko.org/changelog.html)) | `>=3.5.1` → `>=4.0.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/paramiko/4.0.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/paramiko/5.0.0/4.0.0?slim=true) | project.dependencies | patch |
| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `>=10.21.2` → `>=10.21.3` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pymdown-extensions/10.21.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pymdown-extensions/10.21.2/10.21.3?slim=true) | project.dependencies | patch |
| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `>=8.4.2` → `>=9.0.3` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest/9.0.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest/9.0.3/9.0.3?slim=true) | project.optional-dependencies | patch |
| [pytest-cov](https://github.com/pytest-dev/pytest-cov) ([changelog](https://pytest-cov.readthedocs.io/en/latest/changelog.html)) | `>=6.3.0` → `>=7.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest-cov/7.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest-cov/7.1.0/7.1.0?slim=true) | project.optional-dependencies | patch |
| [python](https://python.org) ([source](https://github.com/python/cpython)) | `>=3.14.4` → `>=3.14.5` | ![age](https://developer.mend.io/api/mc/badges/age/python-version/python/3.14.5?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/python-version/python/3.14.4/3.14.5?slim=true) | requires-python | patch |
| [random](https://registry.terraform.io/providers/hashicorp/random) ([source](https://github.com/hashicorp/terraform-provider-random)) | `3.8.1` → `3.9.0` | ![age](https://developer.mend.io/api/mc/badges/age/terraform-provider/hashicorp%2frandom/3.9.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/terraform-provider/hashicorp%2frandom/3.8.1/3.9.0?slim=true) | required_provider | minor |
| renovate/renovate | `bf5338a` → `ee31283` |  |  | container | digest |
| [requests](https://github.com/psf/requests) ([changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | `>=2.34.0` → `>=2.34.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/requests/2.34.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/requests/2.34.0/2.34.1?slim=true) | project.dependencies | patch |
| [time](https://registry.terraform.io/providers/hashicorp/time) ([source](https://github.com/hashicorp/terraform-provider-time)) | `~> 0.13` → `~> 0.14` | ![age](https://developer.mend.io/api/mc/badges/age/terraform-provider/hashicorp%2ftime/0.14.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/terraform-provider/hashicorp%2ftime/0.13.1/0.14.0?slim=true) | required_provider | minor |
| [tls](https://registry.terraform.io/providers/hashicorp/tls) ([source](https://github.com/hashicorp/terraform-provider-tls)) | `4.2.1` → `4.3.0` | ![age](https://developer.mend.io/api/mc/badges/age/terraform-provider/hashicorp%2ftls/4.3.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/terraform-provider/hashicorp%2ftls/4.2.1/4.3.0?slim=true) | required_provider | minor |

This PR was automatically generated by Renovate Bot.

Please review the changes before merging.

---

### Release Notes

<details>
<summary>boto/boto3 (boto3)</summary>

### [`v1.43.7`](https://github.com/boto/boto3/blob/HEAD/CHANGELOG.rst#1437)

[Compare Source](boto/boto3@1.43.6...1.43.7)

\======

- api-change:`arc-region-switch`: \[`botocore`] Adds support for enabling and disabling Lambda event source mappings in Region switch plans.
- api-change:`batch`: \[`botocore`] Adds a billing callout to docs regarding using the CE Scale Down Delay feature
- api-change:`bedrock-agentcore-control`: \[`botocore`] Adds support for read-only summary APIs for Policy Engine, Policy, and Policy Generation resources, enabling metadata retrieval without KMS decryption for AWS Config integration.
- api-change:`billingconductor`: \[`botocore`] Add ConflictException to UpdateCustomLineItem operation.
- api-change:`connect`: \[`botocore`] This change added three new EventSourceName for schedule notification feature
- api-change:`connectcampaignsv2`: \[`botocore`] This release added support for Outbound Campaign timezone detection using all available contact methods
- api-change:`connectcases`: \[`botocore`] Amazon Connect Cases now supports SLA durations of up to 2 years (1,051,200 minutes), increased from the previous maximum of 90 days (129,600 minutes). This enables you to track long-running service level agreements for cases that require extended resolution timelines.
- api-change:`dsql`: \[`botocore`] Added support for Amazon Aurora DSQL change data capture (CDC) streams that deliver row-level database changes to Amazon Kinesis in JSON format. Includes CreateStream, GetStream, ListStreams, and DeleteStream operations.
- api-change:`ec2`: \[`botocore`] Include length limits in the SDK and documentation for text fields in Image (AMI) APIs such as the image name and description
- api-change:`endpoint-rules`: \[`botocore`] Update endpoint-rules client to latest version
- api-change:`es`: \[`botocore`] Adds support for AutomatedSnapshotPauseOptions.
- api-change:`glue`: \[`botocore`] AWS Glue now defaults the job timeout to 480 minutes for Glue version 5.0 and later when no timeout value is specified. The default remains 2,880 minutes for Glue version 4.0 and earlier.
- api-change:`lightsail`: \[`botocore`] Added OriginIpAddressTypeEnum (ipv4, ipv6, dualstack) and ipAddressType field to Origin and InputOrigin structures for Lightsail CDN distributions. Allows customers to specify how the distribution connects to origins, using IPv4, IPv6, or dualstack networking
- api-change:`opensearch`: \[`botocore`] Adds support for AutomatedSnapshotPauseOptions.
- api-change:`partnercentral-account`: \[`botocore`] Added ServiceQuotaExceededExceptions for Profile operations
- api-change:`pcs`: \[`botocore`] Add support for Amazon EC2 Interruptible-ODCR
- api-change:`quicksight`: \[`botocore`] Adds five new custom permission option for Quick Apps so that these capabilities can be controlled by public SDK and CLI.
- api-change:`redshift`: \[`botocore`] Added rg.xlarge and rg.4xlarge to valid NodeType values and updated documentation for CreateCluster, ModifyCluster, ResizeCluster, and RestoreFromClusterSnapshot APIs to reflect RG node type support.
- api-change:`rtbfabric`: \[`botocore`] Customers can now configure custom domain names for their RTB Fabric gateways. This enables partners to use their own branded domain for RTB traffic instead of the default rtbfabric endpoint
- api-change:`sagemaker`: \[`botocore`] Adds execution role session name mode to reflect user identity in Studio. Adds Flexible Training Plans on Studio apps. Adds restricted model packages to control access to proprietary model artifacts via IAM. Fixed instance type parity between inference endpoints and managed shadow tests.
- api-change:`securityagent`: \[`botocore`] Add support for code reviews, a new resource type that enables automated security-focused static analysis of source code repositories.
- api-change:`socialmessaging`: \[`botocore`] Adds parameters to call the GetWhatsAppMessageTemplate and UpdateWhatsAppMessageTemplate APIs with a template name and language code in place of the template ID. Linked WhatsApp accounts also describe whether the WABA is onboarded to Meta's Marketing Messages API.
- api-change:`stepfunctions`: \[`botocore`] Updated default SDK endpoints for AWS Step Functions in AWS GovCloud (US) regions. The default Dual-Stack endpoints now resolve to "states-fips" prefixed hostnames. There are no changes to service behavior. No customer action is required.

</details>

<details>
<summary>getarcaneapp/arcane (ghcr.io/getarcaneapp/arcane)</summary>

### [`v1.19.1`](https://github.com/getarcaneapp/arcane/blob/HEAD/CHANGELOG.md#v1191)

[Compare Source](getarcaneapp/arcane@v1.19.0...v1.19.1)

##### Bug fixes

- show archived switch overlapping projects search bar([d02a05c](getarcaneapp/arcane@d02a05c) by [@&#8203;kmendell](https://github.com/kmendell))
- show correct environments types in filter ([#&#8203;2578](getarcaneapp/arcane#2578) by [@&#8203;kmendell](https://github.com/kmendell))
- build history not being updated after builds are completed ([#&#8203;2586](getarcaneapp/arcane#2586) by [@&#8203;kmendell](https://github.com/kmendell))
- incorrect backend arg used for trivy on 32bit hosts ([#&#8203;2587](getarcaneapp/arcane#2587) by [@&#8203;kmendell](https://github.com/kmendell))
- updater api authorization checks ([#&#8203;2588](getarcaneapp/arcane#2588) by [@&#8203;kmendell](https://github.com/kmendell))
- deny non hmac jwt requests([d568d03](getarcaneapp/arcane@d568d03) by [@&#8203;kmendell](https://github.com/kmendell))
- add rate limiting to webhooks and auth endpoints, and add caching to user session ([#&#8203;2591](getarcaneapp/arcane#2591) by [@&#8203;kmendell](https://github.com/kmendell))

##### Other

- add mobile device custom redirect url for oidc ([#&#8203;2580](getarcaneapp/arcane#2580) by [@&#8203;kmendell](https://github.com/kmendell))
- migrate off gin to use echo for backend router ([#&#8203;2582](getarcaneapp/arcane#2582) by [@&#8203;kmendell](https://github.com/kmendell))
- store user sessions in database with proper jti ([#&#8203;2590](getarcaneapp/arcane#2590) by [@&#8203;kmendell](https://github.com/kmendell))

**Full Changelog**: <getarcaneapp/arcane@v1.19.0...v1.19.1>

</details>

<details>
<summary>facelessuser/pymdown-extensions (pymdown-extensions)</summary>

### [`v10.21.3`](https://github.com/facelessuser/pymdown-extensions/releases/tag/10.21.3)

[Compare Source](facelessuser/pymdown-extensions@10.21.2...10.21.3)

#### 10.21.3

- **FIX**: Fix regression that allows a snippet to be loaded outside of the base path using directory traversal when
  `restrict_base_path` is enabled (the default). Found by [@&#8203;gistrec](https://github.com/gistrec).

</details>

<details>
<summary>python/cpython (python)</summary>

### [`v3.14.5`](python/cpython@v3.14.4...v3.14.5)

[Compare Source](python/cpython@v3.14.4...v3.14.5)

</details>

<details>
<summary>hashicorp/terraform-provider-random (random)</summary>

### [`v3.9.0`](https://github.com/hashicorp/terraform-provider-random/blob/HEAD/CHANGELOG.md#390-May-12-2026)

[Compare Source](hashicorp/terraform-provider-random@v3.8.1...v3.9.0)

FEATURES:

- resource/random\_bytes: add ephemeral random\_bytes resource ([#&#8203;711](hashicorp/terraform-provider-random#711))

ENHANCEMENTS:

- Added linux/s390x build target for IBM Z platform support ([#&#8203;784](hashicorp/terraform-provider-random#784))

BUG FIXES:

- resource/random\_password, resource/random\_string: Fix UTF-8 character handling to correctly count characters instead of bytes when using multi-byte UTF-8 characters in override\_special ([#&#8203;741](hashicorp/terraform-provider-random#741))

</details>

<details>
<summary>psf/requests (requests)</summary>

### [`v2.34.1`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#2341-2026-05-13)

[Compare Source](psf/requests@v2.34.0...v2.34.1)

**Bugfixes**

- Widened `json` input type from `dict` and `list` to `Mapping`
  and `Sequence`. ([#&#8203;7436](psf/requests#7436))
- Changed `headers` input type to MutableMapping and removed `None` from
  `Request.headers` typing to improve handling for users. ([#&#8203;7431](psf/requests#7431))
- `Response.reason` moved from `str | None` to `str` to improve handling
  for users. ([#&#8203;7437](psf/requests#7437))
- Fixed a bug where some bodies with custom `__getattr__` implementations
  weren't being properly detected as Iterables. ([#&#8203;7433](psf/requests#7433))

</details>

<details>
<summary>hashicorp/terraform-provider-time (time)</summary>

### [`v0.14.0`](https://github.com/hashicorp/terraform-provider-time/blob/HEAD/CHANGELOG.md#0140-May-12-2026)

[Compare Source](hashicorp/terraform-provider-time@v0.13.1...v0.14.0)

ENHANCEMENTS:

- Added linux/s390x build target for IBM Z platform support ([#&#8203;486](hashicorp/terraform-provider-time#486))

</details>

<details>
<summary>hashicorp/terraform-provider-tls (tls)</summary>

### [`v4.3.0`](https://github.com/hashicorp/terraform-provider-tls/blob/HEAD/CHANGELOG.md#430-May-12-2026)

[Compare Source](hashicorp/terraform-provider-tls@v4.2.1...v4.3.0)

ENHANCEMENTS:

- Added linux/s390x build target for IBM Z platform support ([#&#8203;771](hashicorp/terraform-provider-tls#771))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Toronto)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

---------

Co-authored-by: Mamadou Yaya DIALLO <5+mombe090@noreply.gitea.prod.home.mombesoft.com>
Co-authored-by: Renovate Bot <renovate@mombesoft.com>
Reviewed-on: https://gitea.prod.home.mombesoft.com/homelab/craftarc/pulls/434
Co-authored-by: Renovate Bot <6+renovatebot@noreply.gitea.prod.home.mombesoft.com>
Co-committed-by: Renovate Bot <6+renovatebot@noreply.gitea.prod.home.mombesoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐞 Bug: Table type filter problems

2 participants