# Project plan — procon8

Evidence date: 2026-10-06.

Source repository: `git@bitbucket.org:overdrive/procon8.git`.

Inspected revision: `45e5ee9f` (2019-08-02, "bitbucket-pipelines.yml edited online with Bitbucket") on `master`. That commit is `origin/HEAD`. Remote branches are `master` and `Dev`.

This plan describes what the repository contains. It does not decide what the product should become.

## Product

`procon8` is the Bitbucket repository that holds a WordPress 5.2.1 site packaged for AWS Elastic Beanstalk. The site identity that the tree and history support is **Discover Kasi**:

- Commit `52b6bc59` (2019-06-18) is message "Discover kasi wordpress" and removes the previous static site.
- A deleted CloudFormation template tagged the S3 bucket owner `DiscoverKasi` and the system `Procon8` (`s3bucket.json` at parent of `a939b358`).
- `wordpress/wp-config.php` sets the database name and user to `Discover` and points at an RDS cluster whose name begins with `discoverkasi-cluster` in `eu-west-1`.
- PHP `error_log` files committed inside themes and plugins record a prior host path `/home/discoverikasico/public_html/` with timezone `Africa/Johannesburg` (dates in 2018, before this tree was committed).

Provenance: **Implemented** (config, logs, and git history). The public domain, the legal entity, and whether "Discover Kasi" is the customer-facing name are **Unknown / Requires Confirmation**.

`procon8` is also the AWS application name in `elasticbeanstalk.json` (default application `Dev-procon8`, environment `dev-Procon8`, key pair `dev-procon8`). Elsewhere in Silicon Ark, PROCON8 is an Overdrive product/company name. Whether this repository is that product, a hosting project for Discover Kasi, or only an AWS stack named Procon8 is **Unknown / Requires Confirmation**.

The only project-specific theme change is **Listable Child** (`wordpress/wp-content/themes/listable-child-master/`). It hides listing category counts on the home page. The parent theme is PixelGrade Listable 1.9.2, a directory/listings theme. Provenance: **Implemented** (theme headers and child `style.css`).

`README.md` is an AWS sample about deploying to Elastic Beanstalk. It is not a product description.

## People on the history

182 commits on `master`, 2019-04-24 through 2019-08-02. No commits after that.

| Author | Emails seen | Role in history |
|---|---|---|
| Ayabulela Mgxabayi | `ayabulela@overdrive.co.za`, `ayabulela@SiliconOverdrive.local`, `a.amgxabayi@gmail.com`, Windows account `U-SILICONOVERDRIV\ayabulela` | Most of the WordPress import, pipeline, and Beanstalk edits |
| Gareth Bowers | `gareth@overdrive.co.za` | Initial commit, early CloudFormation / CodeBuild files, some later edits |

`shortlog` counts: Ayabulela Mgxabayi 69, Gareth Bowers 60, abulele mgxabayi 44, the Windows account 9. The two Ayabulela identities are the same person under different git authors. Provenance: **Implemented** (`git shortlog`).

## Branch reality

| Branch | Tip | Date | What it is |
|---|---|---|---|
| `master` (`origin/HEAD`) | `45e5ee9f` | 2019-08-02 | WordPress tree under `wordpress/`, Beanstalk deploy script, CloudFormation template, pipeline |
| `Dev` | `04a2b149` | 2019-05-10 | Static HTML under `test/`. Pipeline on this branch zips `test/*`. Not the WordPress site |

`master` is 17 commits ahead of the merge base with `Dev`. `Dev` has 2 commits that are not on `master`. Provenance: **Implemented** (`git rev-list`).

## History in phases

1. **2019-04-24 — infrastructure experiments.** Initial `README.md`. CloudFormation and CodeBuild/CodeDeploy files (`Procon8.json`, `Procon8-Dev.json`, `Procon8_Monitoring.json`, `master-stack.yml`, `buildspec.yml`, `appspec.yml`, `codedeploy_deploy.py`, `validate-env.py`). These files are not on `master` or `Dev` today.
2. **2019-05-07 to 2019-05-10 — static site and Beanstalk pipeline.** A `test/` HTML site, then `beanstalk_deploy.py` and `bitbucket-pipelines.yml`. On `master` just before the WordPress import, `test/index.html` was a portfolio titled "Akhona Booi - Model / Brand Manager" (Instagram `sparkling_ako`). The `Dev` tip is an earlier page titled "My Blog".
3. **2019-06-18 — static site removed.** `52b6bc59` "Discover kasi wordpress" deletes `test/` from `master`. The WordPress tree is not in that commit.
4. **2019-07-12 to 2019-07-15 — S3 bucket template.** `s3bucket.json` created, then deleted in `a939b358` (message says "edited"). Not on `master` today.
5. **2019-08-01 to 2019-08-02 — WordPress import and Beanstalk tweaks.** `4ce44d8d` adds the `wordpress/` tree (about 10,958 files at `HEAD`, including that tree). Same day: core `login.css` focus colour edit, EFS config deleted, deploy script and pipeline edited.

No project plan, milestone list, or issue tracker exists in the repository.

## Objectives (inferred from the stack, not from a written plan)

No product requirements document exists in the repository. The following are **Inferred**:

- Host a public listings/directory site (Listable + WP Job Manager templates and plugins).
- Offer commerce and booking (WooCommerce, WooCommerce Bookings, accommodation bookings, several other booking plugins, Ecwid). Which of these are turned on is **Unknown**.
- Keep media off the instance disk via WP Offload S3 (`amazon-s3-and-cloudfront`) using the EC2 instance role (`AS3CF_AWS_USE_EC2_IAM_ROLE` in `wp-config.php`). Whether the plugin is configured in the database is **Unknown**.
- Deploy the `wordpress/` tree to an existing Elastic Beanstalk environment from Bitbucket Pipelines on `master`.
- Create that environment, if needed, from `elasticbeanstalk.json` (PHP 7.2 on Amazon Linux 2018.03, load balanced, VPC).

Whether any of this is still running in AWS is **Unknown / Requires Confirmation**. The last commit is 2019-08-02.

## Scope

### In scope of `master` at `45e5ee9f`

- `wordpress/` — WordPress 5.2.1 core, Listable 1.9.2, Listable Child, default Twenty* themes, and the plugins listed in `features.md`.
- `wordpress/wp-config.php` — database name, user, host, salts, SSL admin, and S3 offload IAM flag. Credentials are in git. This document does not copy them.
- `wordpress/.htaccess` — standard pretty-permalink rewrite rules.
- `wordpress/.ebextensions/php-settings.config` and `loadbalancer-sg.config`.
- `beanstalk_deploy.py` — upload `wordpress.zip` to S3 and deploy that version.
- `bitbucket-pipelines.yml` — `master` and `Dev` branch steps.
- `elasticbeanstalk.json` — CloudFormation for the Beanstalk application, environment, security group, and an IAM role.
- `README.md` — Beanstalk deploy instructions copied from an AWS sample.

### Out of scope / not in this repository

- Database contents: pages, listings, products, users, which theme is active, which plugins are active.
- `wp-content/uploads/` (not in git). `wp-content/ai1wm-backups/` contains only the usual deny files, no backup archive.
- Pipeline environment variable values (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`, `APPLICATION_NAME`, `APPLICATION_ENVIRONMENT`, `S3_BUCKET`).
- Proof that the CloudFormation stack was applied.
- `sonar-project.properties` and `sonarqube_scan.bat`. The onboarding scan on 2026-09-28 listed them at the repository root. They are not in `45e5ee9f` and they have no git history. Provenance: **Unknown** — they may have been untracked files on the scan host.

## Architecture (as implemented on `master`)

```text
Bitbucket Pipelines (python:3.5.7)
  zip wordpress/*  ->  /tmp/artifact.zip
  beanstalk_deploy.py
        |  put object key wordpress.zip
        v
  S3 bucket (name = env S3_BUCKET)
        |
        v
  Elastic Beanstalk application version
        |
        v
  Environment (name = env APPLICATION_ENVIRONMENT)
        PHP 7.2 / Amazon Linux, document root /wordpress
        |
        v
  RDS (host in wp-config, database Discover, prefix wp_)
  optional S3 media (plugin + IAM role flag; DB settings unknown)
```

The CloudFormation template describes a separate bootstrap path: application version object key default `test.zip` in a bucket named `{dev|int|qa|prod}-procon8-{region}`. That does not match the pipeline key `wordpress.zip`. Provenance: **Implemented** in the two files. Whether both were used is **Unknown**.

`zip wordpress/*` does not match dotfiles. `.ebextensions` and `.htaccess` are therefore **Inferred** to be omitted from the pipeline artifact. Elastic Beanstalk also reads `.ebextensions` from the bundle root, and these files live under `wordpress/`. Whether the PHP and load-balancer settings ever applied is **Unknown / Requires Confirmation**.

## Milestones (from git, not from a plan)

| When | What landed | Status on `master` |
|---|---|---|
| 2019-04-24 | Repo created; CloudFormation / CodePipeline experiments | Removed from the tip |
| 2019-05-07 | Beanstalk deploy script and Pipelines | Still present, later edited |
| 2019-05-10 | Static HTML site | Removed from `master`; still on `Dev` |
| 2019-06-18 | Static site deleted; commit names Discover Kasi | Done |
| 2019-07-15 | S3 bucket template deleted | Not on the tip |
| 2019-08-02 | WordPress tree, then EFS uploads mount removed | WordPress present; EFS absent |
| After 2019-08-02 | No commits | Frozen |

## Known dependencies

- WordPress 5.2.1 (`wordpress/wp-includes/version.php`). Required PHP in that file: 5.6.20. The Beanstalk solution stack is PHP 7.2.
- MySQL-compatible database. The host string is an Amazon RDS cluster endpoint in `eu-west-1`. Engine version is **Unknown**.
- AWS: Elastic Beanstalk, S3, the VPC and subnets named in `loadbalancer-sg.config`, an ACM certificate in `eu-west-1` (ARN is in that file; not copied here).
- Bitbucket Pipelines variables listed in `README.md`.
- Vendored commercial plugins (WooCommerce Bookings, accommodation bookings, All-in-One WP Migration Unlimited, Booking Calendar). Licence status is **Unknown**.

## Current project status

**Implemented and unchanged since 2019-08-02.** There is no open work in git. There is no documented roadmap.

The `Dev` branch is an older static site, not a current development line for the WordPress product.

## Human confirmation

- Public name, domain, and owner of Discover Kasi, and how that relates to the name Procon8.
- Whether the Beanstalk environment, RDS cluster, and S3 offload are still in use.
- Which theme and plugins are active.
- Whether `.ebextensions` is actually applied by the pipeline zip.
- Whether committed database credentials and salts in `wp-config.php` are still valid. They are not repeated in this plan.
