# Features — serverless-net-core

Evidence date: 2026-10-04.

Source: `git@bitbucket.org:overdrive/serverless-net-core.git`, `master` at `ca18f8f` (2021-06-01).

"Current" means declared in `serverless.yml` or executed by a method that file points at. There is no issue tracker or roadmap in the repository, so nothing is marked planned unless a comment or the README describes behaviour the code does not perform.

The database password in `Handler.cs` is omitted.

## Current features

### F-01 — GET /hello reads one sysUser scalar

`GET /hello` → `AwsDotnetCsharp.Handler.HelloWorld`.

Opens MySQL on host `qaunity.cehgxa1eerul.eu-west-1.rds.amazonaws.com`, database `qaunity`, user `qaunity`. Runs `SELECT * FROM `sysUser``. `ExecuteScalar().ToString()` becomes the only JSON key. The value is `""`. Logs `DB Setup DB`.

Origin: starter `HelloWorld` in `402beb4` returned `hello` / `world`. `f5b7278` replaced that with the database call. `ca18f8f` commented out the remaining `dict.Add("hello", "world")` line.

Status: **current**. Confidence: high.

### F-02 — GET /getquerystring echoes the query string

`GET /getquerystring` → `AwsDotnetCsharp.Handler.GetQuerystring`.

When the query-string map is non-empty and contains `foo`, the response body is the whole map as JSON and the status is 200. The handler logs the request id, the function name, and the value of `foo`.

Origin: `402beb4`. Unchanged by the database commits.

Status: **current**. Confidence: high.

### F-03 — Shared JSON response with open CORS

`CreateResponse` in `Handler.cs`. Null result → HTTP 500 and an empty body. Non-null dictionary → HTTP 200 and JSON. Both set `Content-Type: application/json` and `Access-Control-Allow-Origin: *`.

Used by F-01 and F-02. There is no API Gateway error-response template in the repo, so this header is only on responses the handler builds.

Status: **current**. Confidence: high.

### F-04 — One zip for both functions

`serverless.yml` sets `package.individually: true`. Both functions set `artifact: bin/release/netcoreapp3.1/hello.zip`. Handler strings:

- `AwsDotnetCsharp::AwsDotnetCsharp.Handler::HelloWorld`
- `AwsDotnetCsharp::AwsDotnetCsharp.Handler::GetQuerystring`

`build.cmd` and `build.sh` produce that zip with `dotnet lambda package`. The zip is gitignored.

Status: **current** as deploy configuration. Confidence: high. The scripts were not run in this inspection.

### F-05 — Local Lambda test tool

`setup.sh` installs `Amazon.Lambda.TestTool-3.1` 0.9.5. `Properties/launchSettings.json` (added in `ca18f8f`) starts that tool on port 5050 with working directory `.\bin\$(Configuration)\netcoreapp3.1`. `.vscode/launch.json` launches the tool after `dotnet build`. The `program` path is still `/Users/{user}/.dotnet/tools/dotnet-lambda-test-tool-3.1`.

The README tells the reader to replace `{user}` and says a successful local run returns hello world. F-01 does not return that body.

Status: **current** as developer tooling. The hello-world result text is **stale**. Confidence: high.

### F-06 — Serverless deploy recipe

`serverless.yml` service `ozow-lambda-test`, provider `aws`, runtime `dotnetcore3.1`. No plugins. The README documents `serverless deploy` and, in the Silicon sequence, `serverless deploy --aws-profile ozow`, then `serverless invoke -f hello -l`, then a curl to `https://4row8qyxh1.execute-api.us-east-1.amazonaws.com/dev/hello`. `sls remove` is documented.

`aws-lambda-tools.default.json` is a separate .NET CLI / Visual Studio path: profile `unity`, region `eu-west-1`, template `serverless.yml` (values since `ca18f8f`).

Status: **current** as files. Whether a stack exists is **Unknown**. Confidence: high for the files.

### F-07 — Renovate base config

`renovate.json` is `{ "extends": ["config:base"] }`. No package rules, schedule, or range strategy of its own. Present since `402beb4`. No Renovate commit appears in git.

Status: **current** as a file. Whether Renovate runs on the Bitbucket repo is **Unknown**. Confidence: high for the file.

## Completed features

### F-08 — Starter hello/world body

`402beb4` returned a dictionary `{ "hello": "world" }` from `HelloWorld`. `f5b7278` stopped adding that pair on the success path. `ca18f8f` commented the line out. The behaviour is not current.

Status: **completed / removed**. Confidence: high.

## Not implemented

These appear only as comments, FAQ text, or a directory listing that is not in git. They are not current features.

| Item | Where it appears | What the tree actually has |
|---|---|---|
| API key | README FAQ "How to add an api key" links to Serverless docs | No `apiKeys` or `private: true` in `serverless.yml` |
| Further Lambda functions | README FAQ describes how to add one | Only `HelloWorld` and `GetQuerystring` |
| Example events (S3, schedule, SNS, DynamoDB stream, Alexa, IoT, CloudWatch, Cognito) | Commented under `getquerystring` in `serverless.yml` | Not active |
| IAM role statements for S3 | Commented under `provider` | Not active |
| Stage, region, environment | Commented under `provider` | Not active |
| CloudFormation resources | Commented `resources:` block | Not active. `resources/images/lambda_test_tool.png` is a screenshot |
| Sonar scan | Named in the 2026-09-28 onboarding file list (`sonar-project.properties`, `sonarqube_scan.bat`) | Not in git at `ca18f8f` |
| Automated tests | Not described | No test project, no test file |

## Planned features

No roadmap, TODO list, or issue tracker is in the repository. The commented Serverless examples are stock template text from `402beb4`, not a stated plan. Nothing is marked planned.

## In development

No branch other than `master`. No commit after 2021-06-01. Nothing is in development in git.

## Recently changed

Relative to the first starter tree (`402beb4`), the last behavioural change is `ca18f8f` (2021-06-01):

- .NET Lambda tools profile `unity`, region `eu-west-1` (was `default` / `eu-central-1`).
- Visual Studio mock-tool profile on port 5050.
- Hello/world dictionary line commented out. The database call from `f5b7278` stayed.

"Recently" here means the last commit in the repository, which is more than five years before this evidence date.

## Deprecated or removed

- The live hello/world response (F-08).
- `aws-lambda-tools.default.json` values `profile: default` and `region: eu-central-1`, replaced in `ca18f8f`.

No function was removed from `serverless.yml`. Both routes from the starter are still declared.
