Commit Graph
16 Commits
Author SHA1 Message Date
objecttothisandClaude Sonnet 4.6 38977ede98 Merge remote-tracking branch 'OpensourcePOS/master' into feat-job-queue-phase-2a
Conflict resolutions:
- composer.lock: regenerated via composer update
- Language/**/Config.php (10 files): kept branch's table_polling_frequency_*
  keys; took master's removal of English placeholders in non-EN locales
- Controllers/Customers.php: kept branch's batch-queue import body; applied
  master's getInfo/saveCustomer PSR renames to surrounding methods
- Jobs/Support/CustomerCsvRowProcessor.php: save_customer → saveCustomer
  (PSR rename from master, missed by auto-merge)
- Models/Stock_location.php: took all master PSR renames and new
  setDefaultLocation/saveSortOrder/sort_order logic; re-applied branch's
  ?int $personId = null param to getUndeletedAll and get_allowed_locations

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-11-06 16:51:20 +04:00
objecttothis bf8cb932d6 Merge remote-tracking branch 'OpensourcePOS/master' into feat-job-queue-phase-1
# Conflicts:
#	app/Language/bg/Module.php
#	app/Language/de-CH/Module.php
#	app/Language/en-GB/Module.php
#	app/Language/fr/Module.php
#	app/Language/hr/Jobs.php
#	app/Language/hr/Module.php
#	app/Language/hu/Module.php
#	app/Language/lo/Module.php
#	app/Language/nl-BE/Module.php
#	app/Language/ta/Module.php
#	app/Language/th/Module.php
#	app/Language/tl/Module.php
#	app/Language/tr/Module.php
#	app/Language/zh-Hans/Module.php
#	composer.lock
2026-11-06 15:28:04 +04:00
BudsieBuds 72a75152ad fix(security): harden container permissions, validate platform reqs, and use rolling base image (#4789)
- Dockerfile: use rolling php:8.2-apache with expose_php = Off.
- Dockerfile: validate runtime against composer.lock at build boundary via BuildKit composer check-platform-reqs.
- Dockerfile: enforce least-privilege permissions (root:www-data 0640 files, 0750 dirs), restricting write access to writable/ and public/uploads.
- dockerignore: include composer.json and composer.lock in build context for platform validation.
- CI: remove redundant bash version checks across workflows; enforce fresh upstream base via pull: true in build-release.yml.
- Docs & Changelog: remove security advisory identifiers while preserving minimum patch levels.
2026-11-03 20:06:39 +01:00
BudsieBuds 386f976dcc feat(php): add PHP 8.5 support, resolve deprecations, and optimize CI workflows (#4776)
- Extend composer.json and composer.lock PHP requirement to include PHP 8.5
- Add PHP 8.5 to test matrix in phpunit.yml and main.yml workflows
- Modernize php-linter.yml to use setup-php@v2 with parallel matrix for PHP 8.2–8.5
- Propagate PHP 8.2 lint failures via shell loop in find -exec + while retaining batching for 8.3–8.5
- Add permissions: contents: read and cancel-in-progress concurrency to php-linter.yml
- Remove obsolete Node.js and npm install steps from phpunit.yml
- Update phpunit.yml runner to ubuntu-latest and composer cache action to v4
- Address PHP 8.5 deprecations and syntax:
  - Replace deprecated switch-case semicolon with standard colon in app/Config/Database.php
  - Replace non-standard (double) cast with (float) in app/Libraries/Token_lib.php
  - Remove obsolete curl_close() calls in app/Config/Validation/OSPOSRules.php and app/Libraries/Mailchimp_lib.php
- Update INSTALL.md, workflows README, and bug report issue template to include PHP 8.5
2026-10-28 15:58:14 +04:00
objecttothis d0bb988d42 Merge remote-tracking branch 'OpensourcePOS/feat-job-queue-phase-1' into feat-job-queue-phase-2a
# Conflicts:
#	app/Controllers/Items.php
#	app/Language/az/Config.php
#	app/Language/en/Customers.php
#	app/Language/es-MX/Config.php
#	app/Language/hr-HR/Config.php
#	app/Language/ru/Config.php
#	app/Language/th/Config.php
#	app/Views/configs/general_config.php
#	composer.lock
#	tests/Controllers/CustomersCsvImportTest.php
#	tests/Models/ItemBulkUpdateTest.php
2026-10-26 18:10:47 +04:00
objecttothis 96c13a372f Merge remote-tracking branch 'OpensourcePOS/master' into feat-job-queue-phase-1
# Conflicts:
#	app/Database/Migrations/20240630000001_fix_keys_for_db_upgrade.php
#	app/Language/ar-EG/Module.php
#	app/Language/ar-LB/Module.php
#	app/Language/az/Module.php
#	app/Language/bg/Module.php
#	app/Language/bs/Module.php
#	app/Language/ckb/Module.php
#	app/Language/cs/Module.php
#	app/Language/da/Module.php
#	app/Language/de-CH/Module.php
#	app/Language/de-DE/Module.php
#	app/Language/el/Module.php
#	app/Language/en-GB/Module.php
#	app/Language/en/Module.php
#	app/Language/es-ES/Module.php
#	app/Language/es-MX/Module.php
#	app/Language/fa/Module.php
#	app/Language/fr/Module.php
#	app/Language/he/Module.php
#	app/Language/hr-HR/Module.php
#	app/Language/hu/Module.php
#	app/Language/hy/Module.php
#	app/Language/id/Module.php
#	app/Language/it/Module.php
#	app/Language/km/Module.php
#	app/Language/lo/Module.php
#	app/Language/ml/Module.php
#	app/Language/nb/Module.php
#	app/Language/nl-BE/Module.php
#	app/Language/nl-NL/Module.php
#	app/Language/pl/Module.php
#	app/Language/pt-BR/Module.php
#	app/Language/ro/Module.php
#	app/Language/ru/Module.php
#	app/Language/sv/Module.php
#	app/Language/sw-KE/Module.php
#	app/Language/sw-TZ/Module.php
#	app/Language/ta/Module.php
#	app/Language/th/Module.php
#	app/Language/tl/Module.php
#	app/Language/tr/Module.php
#	app/Language/uk/Module.php
#	app/Language/ur/Module.php
#	app/Language/vi/Module.php
#	app/Language/zh-Hans/Module.php
#	app/Language/zh-Hant/Module.php
#	composer.lock
#	gulpfile.js
#	public/css/ospos.css
2026-10-26 17:58:21 +04:00
jekkos 01ba467948 fix(security): pin patched PHP 8.2.35+ for CVE-2026-109618/109619 (#4767)
* fix(security): pin patched PHP 8.2.35+ for CVE-2026-109618/109619

- Dockerfile: pin base image to php:8.2.35-apache (was floating php:8.2-apache)
- composer.json: raise minimum PHP to >=8.2.35
- CI (main, build-release, phpunit): add patch-level guard step
- docs/INSTALL.md: document minimum patch levels

Fixes #4765
2026-10-21 21:23:49 +02:00
jekkos 1e27f31673 feat(install): add one-line Ubuntu installer (#4550)
* feat(install): add one-line Ubuntu installer with CI test and docs

- Add scripts/install-ubuntu.sh: installs Apache/MariaDB/PHP, downloads the
  latest stable release, configures the DB + Apache, and optionally sets up
  Let's Encrypt SSL (interactive or via env vars).
- Add .github/workflows/install-script-test.yml: runs the installer in a fresh
  Ubuntu container and sanity-checks the result.
- Document the installer in INSTALL.md.
- Harden the script: identifier-safe DB_NAME, quote/pipe rejection in
  passwords, correct 'Candidate: (none)' PPA detection, keep unix_socket root
  auth when no root password is set, select the .zip release asset, and use the
  SSL domain as the public hostname for allowedHostnames.
2026-10-19 19:27:53 +02:00
jekkos f37021a860 docs: move BUILD.md, INSTALL.md, UPGRADE.md into docs/ (#4755)
* docs: move BUILD.md, INSTALL.md, UPGRADE.md into docs/

Closes #4751

- Move the three detailed guides from the repo root into docs/
- Update all links in README.md, .github/ISSUE_TEMPLATE.md,
  docker-compose.yml, and cross-references within the moved guides
- Add docs/**/* to the gulp compress task so release archives
  include the guides under their new docs/ path
- README now links to all three guides
- Root-level files (README, CHANGELOG, LICENSE, SECURITY.md,
  CODE_OF_CONDUCT.md, AGENTS.md) remain in place

* docs: add working-dir note and remove stale 'docs' .gitignore entry

- Add explicit note that Docker/install commands run from repo root
- Remove stale 'docs' line from .gitignore (leftover from old ApiGen
  output) so tracked files under docs/ can be modified normally
2026-10-16 09:20:45 +02:00
jekkos f0fd8a305b Cleanup source repository, create dist zip (#1305) 2017-08-06 02:10:18 +02:00
FrancescoUK 4a61119c3d Regen ApiGen code documentation 2017-07-28 18:15:35 +01:00
FrancescoUK 863988d2ab Regen ApiGen documentation 2017-07-06 22:13:18 +01:00
FrancescoUK 12b5ed43c6 Regen ApiGen documentation 2017-07-02 20:26:45 +01:00
FrancescoUK 95733ea476 Regen Apigen documentation 2017-07-02 11:23:09 +01:00
FrancescoUK d25c6dc8c1 Added ApiGen documentation to model/person class as an example 2017-04-30 23:27:15 +01:00
FrancescoUK f9fb9e44b3 Added apigen to generate OSPOS code documentation (see docs)
Added grunt-composer and grunt-apigen and scripted all the steps in Grunt
2017-04-29 23:43:15 +01:00