# Business rules — reactjs-nodejs-tutorial

Evidence date: 2026-10-05. Revision: `master` `1500676`.

No business-rules document exists in the source repository. The README is an upstream starter guide. Every rule below is **Inferred** from implementation unless the line says **Documented**. No rule here was found as an Overdrive product policy.

## Who may act

**BR-001 — `hello` does not check who is calling.**  
The function reads neither `event` nor `context`. There is no authorizer, API key, or IAM statement in `serverless.yml` because there is no function event. **Inferred.**

**BR-002 — No role or tenant rule exists.**  
No user table, claim, or group is referenced. **Inferred.**

## Response rules

**BR-003 — Every completed call is HTTP 200.**  
The only return path sets `statusCode: 200`. There is no 4xx or 5xx branch. **Inferred** from `handler.js`.

**BR-004 — The message does not depend on the input.**  
`event` can be anything, including the string `'event'` used by the test. The JSON `message` is always `Go Serverless v1.0! Your function executed successfully! (with a delay)`. **Inferred.**

**BR-005 — The handler waits one second before resolving.**  
`message` is called with `time: 1`, and the timer delay is `time * 1000` milliseconds. **Inferred.**

**BR-006 — The success path never rejects.**  
`message` accepts `reject` and does not call it. **Inferred.**

**BR-007 — The event is not echoed.**  
**Documented** in the README demo as `input: event`. **Implemented** behaviour omits `input`. The implemented rule is BR-004, not the README sample.

## Configuration rules

**BR-008 — The default stage name in this file is `prod`.**  
`provider.stage` is `prod`. The README demo URL uses the path `/dev/`. The YAML value is what a CLI invocation would take when `--stage` is omitted. Whether that was intentional is **Unknown / Requires Confirmation**. **Inferred** from the literal.

**BR-009 — Region is `us-east-1`.**  
`provider.region` is `us-east-1`. The README demo host is also `us-east-1`. **Inferred** from the literal. The demo API id is not in this YAML.

**BR-010 — `SAMPLE_ENV_VAR` is an example, not a runtime rule.**  
The value `i-am-an-environment-variable` is only in `env.example`. Nothing reads it. **Inferred.**

**BR-011 — A local `.env` must not be committed.**  
**Documented** in `README.md` and in `env.example` comments. **Implemented** by `.gitignore` entries `.env` and `env.yml`. No `.env` is in git at `1500676`.

**BR-012 — The README's "uncomment `environment:`" step cannot be followed on this file.**  
`serverless.yml` has no commented `environment` block. **Inferred** from the absence. The README still says to uncomment one.

## Test and packaging rules

**BR-013 — The unit test does not lock the response body.**  
`tests/handler.test.js` would, if its callback ran, only check status 200 and that `body` is a string. It does not check the message or the delay. The callback does not run, because `hello` never calls a third argument. **Inferred.**

**BR-014 — Dependencies that are unused do not change `hello`.**  
`uuid` (7.0.3) and `aws-sdk` (2.658.0) are locked and are not imported by `handler.js` or the test. **Inferred** that they do not affect the response.

## Naming

**BR-015 — Three names coexist, and the code enforces none of them as a domain.**  
Repository `reactjs-nodejs-tutorial`, README title Serverless Node.js Starter, service `notes-app-api`. No validation rejects a mismatch. Which name is authoritative is **Unknown / Requires Confirmation**.

## Licence

**BR-016 — The committed licence is MIT, copyright 2017 Anomaly Innovations.**  
**Documented** in `LICENSE` and `"license": "MIT"` in `package.json`. This investigation does not decide whether that copyright notice still fits a private Overdrive copy.
