# Technical documentation — russel-serverless-api

Evidence date: 2026-10-05. Source: `git@bitbucket.org:overdrive/russel-serverless-api.git`, `master` at `c6a6cd889f2da571fc0f10bb037041e5dfb65114`.

Provenance labels: **Documented**, **Implemented**, **Inferred**, **Planned**, **Unknown**.

No technical document existed in the repository or in `silicon_ark/russel-serverless-api/` before this file.

## What this repository is

A Bitbucket Git repository in the `overdrive` workspace with slug `russel-serverless-api`. On 2026-10-05, `master` contained one file: `.gitignore`.

Provenance: **Implemented** (`git fetch`, `git ls-tree -r HEAD`).

It is not a deployed service. No serverless framework, function runtime, or API process is present in git.

## Inspection method

1. OVER-260 names `~/projects/sonar_scan/repos/russel-serverless-api`. That path is not on this machine.
2. A copy was opened at `E:\backup\sonar_scan\repos\russel-serverless-api`. Its `origin` URL is `git@bitbucket.org:overdrive/russel-serverless-api.git`. Local branch `master` tracks `origin/master`.
3. `git fetch` on 2026-10-05 completed and left `HEAD` at `c6a6cd8`. `git status` reported the branch up to date with `origin/master`, with two untracked files.
4. `git log --all` shows that single commit. `git branch -a` shows only `master`. `packed-refs` contains `refs/remotes/origin/master` and no tags. `refs/tags` has no tag files.
5. `origin/HEAD` is `refs/heads/master`.
6. The Bitbucket HTTP API client available to this task returned 401, so project permissions, pull requests, and the web default-branch setting were not read. `origin/HEAD` is the git evidence for the default branch.

## Application structure

Committed tree:

```text
russel-serverless-api/
└── .gitignore
```

Working tree on the backup copy (not in `git ls-tree`):

```text
russel-serverless-api/
├── .gitignore
├── sonar-project.properties    (untracked, 354 bytes)
└── sonarqube_scan.bat          (untracked, 944 bytes)
```

No `src/`, `app/`, `api/`, `functions/`, tests, or infra directory exists in the remote.

## Frameworks and languages

None declared in git. `.gitignore` mentions Node artefacts, Java class files, Python bytecode, Maven `target/`, and JetBrains `.idea/` as examples of files one might ignore. The header says the list should be customized. Those comments do not mean those languages are used. Provenance: **Documented** as sample text. The stack, if one was intended, is **Unknown / Requires Confirmation**.

The batch file is Windows `cmd` syntax (`@echo off`, `cd /d`, `if errorlevel`, `pause`). Provenance: **Implemented** in the untracked file. It is a scan wrapper, not the product language.

## `.gitignore` (the only tracked file)

50 lines. Header links to `https://www.atlassian.com/git/tutorials/saving-changes/gitignore`. Patterns present:

| Group | Patterns |
|---|---|
| Node | `node_modules/`, `dist/` |
| Java | `*.class` |
| Python | `*.py[cod]` |
| Logs | `*.log` |
| Packages | `*.jar` |
| Maven | `target/`, `dist/` (`dist/` is listed twice) |
| JetBrains | `.idea/` |
| Unit test reports | `TEST*.xml` |
| macOS | `.DS_Store` |
| Windows | `Thumbs.db` |
| Applications | `*.app`, `*.exe`, `*.war` |
| Media | `*.mp4`, `*.tiff`, `*.avi`, `*.flv`, `*.mov`, `*.wmv` |

Nothing in the committed tree produces those artefacts. The ignore file does not mention `sonar-project.properties` or `sonarqube_scan.bat`, which is why `git status` shows them as untracked rather than ignored.

## SonarQube files (untracked)

Both files say they were auto-generated. Who ran the generator is **Unknown**.

### `sonar-project.properties`

| Property | Value |
|---|---|
| `sonar.projectKey` | `overdrive_russel_serverless_api` |
| `sonar.projectName` | `russel-serverless-api` |
| `sonar.sources` | `.` |
| `sonar.host.url` | `https://scan.appmonitor.co.za` |
| `sonar.sourceEncoding` | `UTF-8` |

No `sonar.tests`, exclusions, inclusions, or language override is set. With `sonar.sources=.`, a scan of this tree would see `.gitignore` and, if present, the scan files themselves. Provenance: **Documented** in the properties file. A scan was not run.

Filesystem last write on the backup copy: 2026-01-07 18:36:11 local time.

### `sonarqube_scan.bat`

| Item | Value |
|---|---|
| Working directory | The directory containing the script (`cd /d "%~dp0"`) |
| First command | `git pull`. Failure prints a warning and does not stop the script |
| Scanner | `C:\wamp64\www\sonar_scan\sonar-scanner\bin\sonar-scanner.bat` |
| Token | `%SONAR_TOKEN%` when that variable is defined, otherwise `%SONARQUBE_TOKEN%` |
| Arguments | `-Dsonar.projectKey=overdrive_russel_serverless_api`, `-Dsonar.sources=.`, `-Dsonar.host.url=https://scan.appmonitor.co.za`, `-Dsonar.token=%TOKEN%` |
| Failure | Message, `pause`, `exit /b 1` |
| Success | Message only |

Filesystem created 2026-01-28 06:33:00 and last written 2026-01-28 06:55:29 local time on the backup copy.

The properties file and the batch file agree on project key, sources, and host. The batch file does not pass `sonar.projectName` or `sonar.sourceEncoding`. Those remain only in the properties file. Precedence if both are loaded is **Inferred** (SonarScanner reads `sonar-project.properties` from the working directory, and a `-D` argument overrides the same key). It was not observed.

No token, password, or account id is stored in either file.

## Runtime configuration

No `.env`, appsettings, or config module is in git. The batch file expects the Sonar token in the process environment. It does not document where that variable is set.

## Authentication

No application auth.

Bitbucket access control for push and admin was not listed (API client returned 401). **Unknown / Requires Confirmation.**

Sonar auth, when the local script is used, is a token in `SONAR_TOKEN` or `SONARQUBE_TOKEN`. Provenance: **Documented** in the batch file.

## Data

No database, migration, schema, or local store.

## APIs

No HTTP route, client, event binding, or OpenAPI file. The repository name is not an endpoint.

## Background work

No worker, queue, cron, or pipeline definition is in git. The batch file is a manually started Windows script (`pause` on failure). Nothing in the repo schedules it.

## Storage

No bucket, disk path, or upload handler. The scanner path is a path to a tool on a Windows machine, not application storage.

## Build, environments, and scripts

No build script is in git. No `Dockerfile`, `docker-compose`, `bitbucket-pipelines.yml`, `Makefile`, or host config is tracked.

The only script found is the untracked `sonarqube_scan.bat` above. It was not run.

## Testing

No test runner and no tests. There is nothing to execute. `TEST*.xml` appears only as an ignore pattern in the sample `.gitignore`.

## Security notes (observed, not a pentest)

- No application surface is present in git, so there is no route or dependency to review.
- The batch file does not hard-code a token. It interpolates an environment variable into the scanner command line. A process listing on the scan host could still show that argument while the scanner runs. Provenance: **Inferred** from the way the script builds the command. The script was not run.
- `sonar.sources=.` would include whatever is in the working directory at scan time, including the batch file's token argument line (the variable name, not a value, is what is written in the file).
- No credential file was in the tree.

## Deployment and operations

**Unknown / Requires Confirmation.** Nothing in git names a cloud account, a function name, a host, or a monitoring system.

The only operational command found is the untracked Sonar scan against `https://scan.appmonitor.co.za`. Whether that server has a project for key `overdrive_russel_serverless_api` was not checked.

## Related repositories

| Repository | Relationship as evidenced | Provenance |
|---|---|---|
| `website` | Separate repo. Silicon Ark documents a branch `development_russel` and commits by Russel Sauer. Those documents do not name slug `russel-serverless-api` | **Unknown** whether the names were meant to be one product |
| `unity-lite` | Separate repo. Its project plan records an author `RusselSauer`. It does not name this slug | **Unknown** |
| Scan-host tooling under `sonar_scan` | The batch file points at `C:\wamp64\www\sonar_scan\sonar-scanner\bin\sonar-scanner.bat`. That binary is outside this repository | **Documented** as a path. Not a product dependency in git |

A Markdown search for `russel-serverless-api` and `russel_serverless` before this directory found no cross-reference.

## Human confirmation

- Intended language, framework, and host, if this repository is still a planned codebase.
- Bitbucket project permissions.
- Whether the untracked Sonar files should be committed.
- Whether `C:\wamp64\www\sonar_scan\sonar-scanner\bin\sonar-scanner.bat` is still the scanner used for this slug.
- Whether SonarQube project `overdrive_russel_serverless_api` exists on `https://scan.appmonitor.co.za`.
