### Does this PR have any customer impact?
yes
### Type (Feature, Refactoring, Bugfix, DevOps, Testing, Perf, etc)
bugfix
### Does it involve schema level changes? (Table, Column, Index, UDF, etc level changes)
no
### Are you introducing any new config? If yes, do you have tests with and without them being set?
no
### ChangeLog (Refer [Template](../oss/CHANGELOG.md))
### Description
- enable building both locally & in docker
- fix the hardcoded paths
----
#### AI description (iteration 1)
#### PR Classification
Enhancement: Updates to build scripts and Docker configuration to enable building the gateway both locally and in Docker.
#### PR Summary
This pull request revises several scripts and configuration files to integrate local and containerized build processes for the gateway.
- **`/oss/scripts/emulator_entrypoint.sh`**: Refactors the configuration file handling by defining a variable and updating file permissions and copy paths.
- **`/oss/scripts/build_and_start_gateway.sh`**: Introduces a local build process using Cargo (clean, build, and binary copy) and adjusts the binary execution path.
- **`/oss/.github/containers/Build-Ubuntu/Dockerfile_gateway`**: Updates copy paths to place the gateway binary and configuration into the new subfolder.
- **`/oss/rust-toolchain.toml` & `/oss/pg_documentdb_gw/.gitignore`**: Adds the Cargo component to the toolchain and ensures the built binary is ignored.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Signed-off-by: Shuai Tian <shuaitian@microsoft.com>
### Does this PR have any customer impact?
### Type (Feature, Refactoring, Bugfix, DevOps, Testing, Perf, etc)
### Does it involve schema level changes? (Table, Column, Index, UDF, etc level changes)
### Are you introducing any new config? If yes, do you have tests with and without them being set?
### ChangeLog (Refer [Template](../oss/CHANGELOG.md))
### Description
- Add a gateway host extension that starts up and maintains the documentdb_gw as a postgres background worker.
- Fix up start_oss_server.sh to support also launching the documentdb_gw as a background worker
- Fix up start_oss_server.sh to support using documentdb_extended_rum as a binary replacement for rum
- Fix up build_and_install_with_pgrx to support packaging a pgrx extension as well as ensuring pgrx is installed correctly.
- Add sanity test to validate the gateway host.
----
#### AI description (iteration 23)
#### PR Classification
New feature implementation.
#### PR Summary
This PR adds support for a DocumentDB Gateway Host extension that runs as a PostgreSQL background worker, enhancing the OSS extension capabilities. Key changes include:
- **`/.pipelines/templates/oss_documentdb_build.yml`**: Added conditional build jobs for OSS Gateway Host and OSS Gateway with new parameters.
- **`/.pipelines/templates/oss_documentdb_tests.yml`**: Introduced a new testing pipeline to validate the DocumentDB extension with the Gateway Host.
- **`/oss/scripts/build_and_install_with_pgrx.sh`**: Updated cargo-pgrx installation logic with enhanced options and help support.
- **`/oss/scripts/start_oss_server.sh`**: Enhanced the startup script to configure gateway worker mode and extended rum options.
- **File reorganization**: Moved the `pg_documentdb_gw_host` source and control files from `/gateway` to `/oss` and updated the changelog accordingly.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Signed-off-by: Shuai Tian <shuaitian@microsoft.com>
### Does this PR have any customer impact?
yes
### Type (Feature, Refactoring, Bugfix, DevOps, Testing, Perf, etc)
feature
### Does it involve schema level changes? (Table, Column, Index, UDF, etc level changes)
no
### Are you introducing any new config? If yes, do you have tests with and without them being set?
no
### ChangeLog (Refer [Template](../oss/CHANGELOG.md))
Provide Rust dev environment in devcontainer
### Description
- install toolchain from rustup
- ensure we run the proper profile in dockerfile
- make sure tests are working
----
#### AI description (iteration 1)
#### PR Classification
This pull request introduces a new feature to enhance the Rust development environment in the OSS repository.
#### PR Summary
The changes streamline the Rust dev experience by updating the build infrastructure, adding Rust-specific tools, and fine-tuning test configurations. Key updates include:
- **`Dockerfile_gateway`**: Adjusts the Docker workflow by switching to a non-root user, installing Rust via a new `install_rustup.sh` script, and building with the custom `release-with-symbols` profile.
- **`devcontainer.json`**: Incorporates the Rust analyzer extension and detailed Rust settings for improved performance, code formatting, and project linking.
- **`Cargo.toml`**: Introduces a new release profile (`release-with-symbols`) with tailored debug and optimization settings.
- **Test and common modules**: Updates test assertions and runtime configuration to correctly handle error messages and dynamically set the Postgres system user.
- **New files and minor updates**: Adds `install_rustup.sh` and `rust-toolchain.toml` for robust Rust toolchain management, and updates `.gitignore` by removing `.vscode/`.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
Signed-off-by: Shuai Tian <shuaitian@microsoft.com>
### Does this PR have any customer impact?
No
### Type (Feature, Refactoring, Bugfix, DevOps, Testing, Perf, etc)
TSG
### Does it involve schema level changes? (Table, Column, Index, UDF, etc level changes)
### Are you introducing any new config? If yes, do you have tests with and without them being set?
### Release Note (Refer [Template](../docs/release_notes/pgmongo_template.md))
### Description
This change introduces a section in the SOP that includes a script enabling simultaneous updates across multiple accounts under the same subscription.
* Add devContainer for build time setup to HelioDB
This allows for the development flow to simply be:
Developers open the repository in VsCode
Reopen in DevContainer
make/make install
make check
To run an adhoc server, developers can run in the dev-container
./scripts/start_helio_server.sh
---------
Co-authored-by: Vinod Sridharan <visridha@microsoft.com>