# Technical documentation — paymyfines-worker

Evidence date: 2026-10-07.

Source: `git@bitbucket.org:overdrive/paymyfines-worker.git`, `master` at `a8ba8cf37d03e307b3838a099f699d9fa0f69224` (2021-06-08 07:52:33 +0200). `origin/HEAD` is `master`. No other branch and no tag.

The scan-host path `~/projects/sonar_scan/repos/paymyfines-worker` was not on the machine that wrote this document. The findings below are from a clone of that revision.

## Repository identity

| Item | Value | Provenance |
|---|---|---|
| Remote | `git@bitbucket.org:overdrive/paymyfines-worker.git` | **Implemented** (`git remote -v`) |
| Default branch | `master` | **Implemented** (`origin/HEAD`) |
| Commits | 2 | **Implemented** |
| Last commit | `a8ba8cf`, 2021-06-08, subject `first commit`, author Jaco Brits `jaco@overdrive.co.za` | **Implemented** |
| First commit | `44de6f7`, 2021-06-01 13:39:14 +0000, subject `Initial commit`, same author | **Implemented** |

## Tree

```text
.gitignore
.vs/ProjectSettings.json
.vs/VSWorkspaceState.json
.vs/slnx.sqlite
```

`slnx.sqlite` is 90112 bytes (git blob size on `a8ba8cf`). The other three files are text.

No README, license, `bitbucket-pipelines.yml`, Dockerfile, `appspec.yml`, Terraform, Serverless template, or dependency manifest (`package.json`, `*.csproj`, `*.sln`, `requirements.txt`, `pom.xml`, `composer.json`, `go.mod`) is in the tree.

## Languages and frameworks

No application language is present.

| File | Format | Role |
|---|---|---|
| `.gitignore` | Text | Git ignore patterns. Header calls them examples |
| `.vs/ProjectSettings.json` | JSON | `CurrentProjectSetting`: `null` |
| `.vs/VSWorkspaceState.json` | JSON | `ExpandedNodes`: `[""]`. `PreviewInSolutionExplorer`: `false` |
| `.vs/slnx.sqlite` | SQLite 3 | Visual Studio workspace index, `SchemaVersion` `1.3.5` |

**Inferred:** `.vs/slnx.sqlite` is the folder-workspace database Visual Studio writes when a directory is opened without a loaded solution. The inference rests on the path, the schema name `slnx`, and the `ProjectConfigurationService` JSON stored in the `Setting` table.

## Workspace index

Read from `.vs/slnx.sqlite` at `a8ba8cf`. Tables present: `FileSystemEntity`, `FullPathEntities`, `Setting`, `SymbolDefinition`, `ProviderEntity`, `FileSystemData`, `FileScannerCache`, `FileSystemReference`.

### Files Visual Studio had seen

`LastObserved` is stored as .NET ticks. Converted values are UTC.

| Id | Parent | Is file | Name | Last observed (UTC) |
|---|---|---|---|---|
| 1 | (none) | directory | `.vs` | 2021-06-08 05:51:45 |
| 2 | (none) | file | `.gitignore` | 2021-06-08 05:50:49 |
| 3 | 1 | file | `ProjectSettings.json` | 2021-06-08 05:51:10 |
| 4 | 1 | file | `VSWorkspaceState.json` | 2021-06-08 05:51:45 |

The database file itself is not a row. No `.sln`, source file, or Sonar file is a row.

### Settings

| Name | Value |
|---|---|
| `SchemaVersion` | `1.3.5` |
| `CreatedOrUpdated` | `06/08/2021 07:50:49` |
| `IndexProcessCount` | `1` |
| `DebugTargetsUserSettingsKey` | `[]` |
| `ProjectConfigurationService` | `ProjectBuildConfigurations` `[]`, `StartupProjectFiles` `[]`, `CurrentStartupProject` `null` |
| `LastIndexSymbolScanners` | A single string of concatenated GUIDs. No scanner row was stored in `ProviderEntity` |

**Inferred:** `CreatedOrUpdated` is local time at UTC+2. 07:50:49 +0200 is 05:50:49 UTC, which matches the earliest `LastObserved` tick. The git commit is 07:52:33 +0200, about two minutes later.

### Empty tables

| Table | Rows |
|---|---|
| `SymbolDefinition` | 0 |
| `ProviderEntity` | 0 |
| `FileSystemData` | 0 |
| `FileScannerCache` | 0 |
| `FileSystemReference` | 0 |

No symbol name, no project reference, and no indexed language provider is stored.

## Ignore file

`.gitignore` is 50 lines. It was added in `44de6f7` and not edited afterwards. The header points at `https://www.atlassian.com/git/tutorials/saving-changes/gitignore` and says to customize the list. It was not customized.

It ignores, among other patterns: `node_modules/`, `dist/` (twice), `*.class`, `*.py[cod]`, `*.log`, `*.jar`, `target/`, `.idea/`, `TEST*.xml`, `.DS_Store`, `Thumbs.db`, `*.app`, `*.exe`, `*.war`, and several media extensions.

It does not ignore `.vs/`, `bin/`, `obj/`, `.sonarqube/`, or `sonar-project.properties`.

**Inferred:** stock Bitbucket "Initial commit" ignore file, from the commit subject, the Atlassian link, and the example header. **Not evidence** that Node, Java, Python, or Maven was chosen for this repository.

## Runtime, data, and integration map

| Area | Finding |
|---|---|
| Application runtime | None |
| Framework | None |
| Database used by an application | None. The sqlite file is IDE state |
| API | None |
| Authentication | None |
| Background worker, job, or queue | None, despite the repository name |
| Object storage or cache | None |
| External integration | None |
| Infrastructure and deployment | None |
| Environment configuration | None. No `.env`, appsettings, or example config |
| Monitoring and logging | No application logger. `*.log` is an ignore pattern only |
| CI | No pipeline file |
| Tests | No test project and no test command |
| Security controls in application code | None to review. No secret, connection string, or token was found in the text files |

## Sonar files named outside git

On 2026-09-28 the onboarding issue recorded this top-level listing from the scan host:

```text
sonar-project.properties
sonarqube_scan.bat
```

Neither path is in `a8ba8cf`. The workspace index from 2021-06-08 does not list them. Contents: **Unknown / Requires Confirmation**.

A listing that skipped dotfiles would hide `.gitignore` and `.vs/` and still would not invent Sonar files. The likely reading is that those two files were added on a working copy and never committed. That reading is **Inferred** and is not confirmed, because the scan-host directory could not be opened.

## Local development and testing

There is no documented setup, and there is nothing to run.

A clone of `master` yields the four paths above. Opening the folder in Visual Studio reproduces an empty workspace: no startup project.

No test command exists. No server port is configured.

## Security notes for this tree

- Do not treat `.vs/slnx.sqlite` as product data or as a credential store. The settings that were read are schema version, timestamps, an empty debug-target list, an empty project configuration, and a GUID string of scanner ids.
- Committing `.vs/` publishes IDE workspace state. The committed copy contains no source symbols.
- No application attack surface is present: there is no listener.

## Related Silicon Ark documents

`pmf-backend-ah` and `pmf-frontend-ah` are separate git remotes with their own Silicon Ark sets. This repository's commits, tree, and index do not reference them. Technical behaviour of Pay My Fines is documented there, not here.
