|
| 1 | +--- |
| 2 | +title: "2025 Monthly Report (June 01 - June 30)" |
| 3 | +keywords: ["Apache APISIX", "API Gateway", "Monthly Report", "Contributor"] |
| 4 | +description: Our monthly Apache APISIX community report generates insights into the project's monthly developments. The reports provide a pathway into the Apache APISIX community, ensuring that you stay well-informed and actively involved. |
| 5 | +tags: [Community] |
| 6 | +image: https://static.api7.ai/uploads/2025/06/30/hNrgfyse_june-monthly-report-cover-en.webp |
| 7 | +--- |
| 8 | + |
| 9 | +> Recently, we've introduced and updated some new features, including adding devcontainer support, enhancing Admin API filtering, and adding `headers` attribute for `loki-logger` plugin, etc. For more details, please read this month's newsletter. |
| 10 | +
|
| 11 | +<!--truncate--> |
| 12 | + |
| 13 | +## Introduction |
| 14 | + |
| 15 | +From its inception, the Apache APISIX project has embraced the ethos of open-source community collaboration, propelling it into the ranks of the most active global open-source API gateway projects. The proverbial wisdom of 'teamwork makes the dream work' rings true in our way and is made possible by the collective effort of our community. |
| 16 | + |
| 17 | +From June 1st to June 30, 17 contributors made 86 commits to Apache APISIX. We sincerely appreciate your contributions to Apache APISIX. |
| 18 | + |
| 19 | +## Contributor Statistics |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +## Feature Highlights |
| 26 | + |
| 27 | +### 1. Add devcontainer support |
| 28 | + |
| 29 | +PR: https://github.com/apache/apisix/pull/11765 |
| 30 | + |
| 31 | +Contributor: [bzp2010](https://github.com/bzp2010) |
| 32 | + |
| 33 | +This PR adds devcontainer support for Linux, Windows (WSL2), and macOS across amd64/arm64 architectures, enabling seamless integration with mainstream development environments and ready-to-use functionality. Additionally, etcd is maintained using docker-compose and accessible on the local loopback. |
| 34 | + |
| 35 | +### 2. Add `headers` attribute for `loki-logger` plugin |
| 36 | + |
| 37 | +PR: https://github.com/apache/apisix/pull/11420 |
| 38 | + |
| 39 | +Contributor: [slow-groovin](https://github.com/slow-groovin) |
| 40 | + |
| 41 | +This PR adds a `headers` attribute to the `loki-logger` plugin. This allows, for example, setting an authorization header when sending logs to a remote Loki service. |
| 42 | + |
| 43 | +### 3. Add `max_pending_entries` attribute to the batch processor |
| 44 | + |
| 45 | +PR: https://github.com/apache/apisix/pull/12338 |
| 46 | + |
| 47 | +Contributor: [Revolyssup](https://github.com/Revolyssup) |
| 48 | + |
| 49 | +This feature introduces a new `max_pending_entries` option to the batch processor to prevent memory spikes when the log server is slow or unresponsive. This option allows dropping new entries if too many pending callbacks are waiting to be processed. |
| 50 | + |
| 51 | +### 4. Enhance Admin API filtering |
| 52 | + |
| 53 | +PR: https://github.com/apache/apisix/pull/12291 |
| 54 | + |
| 55 | +Contributor: [bzp2010](https://github.com/bzp2010) |
| 56 | + |
| 57 | +The Admin API now supports filtering routes and stream routes by `service_id` and `upstream_id`, making it easier to query and manage related resources, especially for the APISIX Dashboard project. |
| 58 | + |
| 59 | +### 5. Add APISIX dashboard to dev image |
| 60 | + |
| 61 | +PR: https://github.com/apache/apisix/pull/12369 |
| 62 | + |
| 63 | +Contributor: [bzp2010](https://github.com/bzp2010) |
| 64 | + |
| 65 | +This PR builds the APISIX dashboard and puts it into the dev image. |
| 66 | + |
| 67 | +### 6. Add embedded APISIX dashboard UI |
| 68 | + |
| 69 | +PR: https://github.com/apache/apisix/pull/12276 |
| 70 | + |
| 71 | +Contributor: [bzp2010](https://github.com/bzp2010) |
| 72 | + |
| 73 | +This PR adds a new embedded UI to APISIX as part of the Apache APISIX Dashboard Enhancement Plan. |
| 74 | + |
| 75 | +### 7. Build APISIX dashboard into the `apisix:dev` Docker image |
| 76 | + |
| 77 | +PR: https://github.com/apache/apisix/pull/12300 |
| 78 | + |
| 79 | +Contributor: [SkyeYoung](https://github.com/SkyeYoung) |
| 80 | + |
| 81 | +As a part of the APISIX Dashboard Enhancement Plan, this PR adds a workflow, which triggers the building and pushing (to the master branch only) of the APISIX dashboard into the `apisix:dev` Docker image. |
| 82 | + |
| 83 | +Moving image-building files from apisix-docker to the main apisix repo improves maintenance and ensures the latest code is readily available for development and testing. |
| 84 | + |
| 85 | +### 8. Support JSON format in Standalone mode |
| 86 | + |
| 87 | +PR: https://github.com/apache/apisix/pull/12333 |
| 88 | + |
| 89 | +Contributor: [SkyeYoung](https://github.com/SkyeYoung) |
| 90 | + |
| 91 | +This update introduces JSON format support for configuration in standalone file mode. It extends `apisix/core/config_yaml.lua`, enabling JSON compatibility without modifying the existing YAML configuration provider. This approach lays the groundwork for supporting additional formats like TOML in the future. JSON is also faster to parse compared to YAML. |
| 92 | + |
| 93 | +### 9. Allow more characters in `credential_id` for Standalone mode |
| 94 | + |
| 95 | +PR: https://github.com/apache/apisix/pull/12295 |
| 96 | + |
| 97 | +Contributor: [AlinsRan](https://github.com/AlinsRan) |
| 98 | + |
| 99 | +This update expands the allowed characters in `credential_id` for the API-driven mode in standalone deployments. Now, `credential_id` can include underscores (_), periods (.), and short hyphens (-), enhancing flexibility for credential naming. |
| 100 | + |
| 101 | +### 10. Support dash (-) in consumer usernames |
| 102 | + |
| 103 | +PR: https://github.com/apache/apisix/pull/12296 |
| 104 | + |
| 105 | +Contributor: [AlinsRan](https://github.com/AlinsRan) |
| 106 | + |
| 107 | +This PR adds support in APISIX for the same naming rules, aligning with the APISIX Ingress Controller's approach of isolating resources via namespace, using a `namespace-username` format for consumer names. |
| 108 | + |
| 109 | +### 11. Expose APISIX version in Prometheus `node_info` metric |
| 110 | + |
| 111 | +PR: https://github.com/apache/apisix/pull/12369 |
| 112 | + |
| 113 | +Contributor: [flearc](https://github.com/flearc) |
| 114 | + |
| 115 | +This PR enhances the Prometheus `node_info` metric by adding a version label to expose the current APISIX version, improving observability and version tracking. |
| 116 | + |
| 117 | +### 12. Warn on etcd write operations in decoupled `data_plane` mode |
| 118 | + |
| 119 | +PR: https://github.com/apache/apisix/pull/12241 |
| 120 | + |
| 121 | +Contributor: [LiteSun](https://github.com/LiteSun) |
| 122 | + |
| 123 | +When APISIX is running in the decoupled mode as the data plane instance, it now logs warnings if the data plane instance performs etcd write operations via `core.etcd` functions or the CLI. Writes will be deprecated in future releases, where such operations will be disallowed. |
| 124 | + |
| 125 | +### 13. Replace events library with shdict |
| 126 | + |
| 127 | +PR: https://github.com/apache/apisix/pull/12353 |
| 128 | + |
| 129 | +Contributor: [Revolyssup](https://github.com/Revolyssup) |
| 130 | + |
| 131 | +This PR switches the Nacos discovery mechanism from the `lua-resty-events` library to a shared dictionary (shdict). This change addresses previous issues where not all workers received events reliably, causing inconsistencies. Now, a privileged agent solely handles data fetching from Nacos and writing to the shdict, while all workers read from the shdict, ensuring consistent data access. |
| 132 | + |
| 133 | +## Conclusion |
| 134 | + |
| 135 | +The [official website](https://apisix.apache.org/) and [GitHub Issues](https://github.com/apache/apisix/issues) of Apache APISIX provide a wealth of documentation of tutorials, and real-world use cases. If you encounter any issues, you can refer to the documentation, search for keywords in Issues, or participate in discussions on Issues to share your ideas and practical experiences. |
| 136 | + |
| 137 | +## Recommended Blogs |
| 138 | + |
| 139 | +- [APISIX Gateway Practices in Tencent Games](https://apisix.apache.org/blog/2025/05/07/apisix-gateway-practice-in-tencent-timi/) |
| 140 | + |
| 141 | + This article details how Tencent Games' Timi Studio Group customized its API gateway based on APISIX. It played a critical role in meeting strict compliance requirements for overseas operations, reducing development and operations costs, and improving system flexibility and reliability. |
| 142 | + |
| 143 | +- [APISIX Gateway Practices in Honor's Massive Business](https://apisix.apache.org/blog/2025/04/27/apisix-honor-gateway-practice-in-massive-business/) |
| 144 | + |
| 145 | + This article explains in detail how Honor adopted APISIX as its API gateway. Since introducing APISIX in 2021, Honor has continuously optimized and extended the platform to build a high-performance, scalable, and reliable gateway that effectively supports its rapidly growing business at scale. |
| 146 | + |
| 147 | +- [From stdio to HTTP SSE: Host Your MCP Server with APISIX API Gateway](https://apisix.apache.org/blog/2025/04/21/host-mcp-server-with-api-gateway/) |
| 148 | + |
| 149 | + Discover how the Apache APISIX `mcp-bridge` plugin seamlessly converts stdio-based MCP servers to scalable HTTP SSE services. |
0 commit comments