# Business rules — formulys_api_nodejs

Evidence date: 2026-10-14.

Source: `git@bitbucket.org:overdrive/formulys_api_nodejs.git`, `master` at `9d191c4` (2023-11-17).

No business-rules document exists in the source repository. The application does not exist in git, so it enforces no domain rule. Rules below are only what the tracked ignore file states, plus the explicit absences a reader would otherwise have to guess.

## Rules that are not in this repository

No rule was found for:

- who may call an API
- authentication or passwords
- roles or tenancy
- validation of a request body
- pricing, workflow state, or retention
- uniqueness, duplicates, or idempotency
- retries, timeouts, or partial failure

Inventing those from the slug would be a product decision. They are **Unknown / Requires Confirmation** if this repository was meant to hold that API.

## Repository ignore behaviour

These are Git ignore patterns, not product policy. They are labelled **Implemented** because they are the text of `.gitignore`. Treating them as a chosen Formulys standard is **Inferred** at most, and the file itself says the list is an example to customise. Confidence that they express a business decision: low.

### BR-001 — Node install and build output are ignored

**Implemented.** `node_modules/` and `dist/` are ignored. `dist/` is listed twice (under "Node artifact files" and under "Maven").

Evidence: `.gitignore`.

No `package.json` is tracked, so this rule currently ignores nothing that exists in git.

### BR-002 — Other ecosystems' build output is ignored

**Implemented.** The same file ignores `*.class`, `*.py[cod]`, `*.jar`, `target/`, and `*.war`.

Evidence: `.gitignore`.

**Inferred:** these lines were copied from a generic template. They are not evidence that the API is a Java or Python service.

### BR-003 — Logs, IDE metadata, OS junk, test-report names, executables, and selected media are ignored

**Implemented.** Patterns: `*.log`, `.idea/`, `TEST*.xml`, `.DS_Store`, `Thumbs.db`, `*.app`, `*.exe`, `*.mp4`, `*.tiff`, `*.avi`, `*.flv`, `*.mov`, `*.wmv`.

Evidence: `.gitignore`.

`sonarqube_scan.bat` would not match `*.exe`. `sonar-project.properties` would not match any pattern. If those files exist only on a scan host, Git would show them as untracked. They are not in the commit.

### BR-004 — The ignore list is described as an example

**Documented** in the file header: the patterns are "examples of commonly ignored file patterns", "You should customize this list as applicable to your project", and a link to `https://www.atlassian.com/git/tutorials/saving-changes/gitignore`.

No customisation beyond that stock text is present. Whether anyone adopted the list as binding policy is **Unknown**.

## Access

No permission model is implemented. Branch protection and Bitbucket project permissions were not readable from git. **Unknown / Requires Confirmation.**
