Skip to content

v2.0.2

Choose a tag to compare

@bradleygb bradleygb released this 17 Aug 20:34
· 33 commits to main since this release

Security

  • The module log no longer records the client's personal data. WHMCS passes a model
    parameter carrying the service, its product and the full client record; a failed module
    command wrote the stored service password, the customer's name, postal address, phone
    number and last-login IP into the WHMCS Module Log. Logging now uses an allow-list of
    diagnostic fields, so nothing unanticipated is ever written.

Fixed

  • Resource limits were never applied to new accounts. CWP's add endpoint expects
    limit_nofile and limit_nproc; udp calls the same two limits openfiles and
    processes; the module sent nofile and nproc, which neither accepts. Every account
    created by earlier versions therefore carries its CWP package defaults rather than the
    product's open-file and process limits. Run Change Package on existing services to
    apply them.
  • Package changes used the wrong endpoint entirely. CWP has a dedicated
    /v1/changepack for this, gated by the narrow "Account pack change" permission. The
    module posted to /v1/account with action=udp — a full account update, checked as a
    broader grant — and with the package suffixed 12@ where that endpoint documents a
    @12 prefix. Package changes now go to changepack, which takes the bare ID.
  • Account/upd is no longer required. The product's inode, open-file and process
    limits are applied through it after the package moves, but a refusal is non-fatal, so a
    key holding only "Account pack change" changes packages successfully.
  • A package change is now verified. status OK is not evidence, so the account is
    re-read afterwards and the operation fails loudly if CWP did not move it.
  • Account creation no longer times out at 20 seconds. Reads keep the short budget;
    anything that changes the server gets provision_timeout, 180 seconds by default.
    Creating an account builds a user, home directory, vhost, DNS zone and mail
    configuration, and takes far longer than a read.
  • A creation that times out is reconciled. CWP keeps working after the module gives
    up, which previously left an account on the server and a failed service in WHMCS. The
    account is now re-checked, and a creation that finished late is reported as the success
    it was.
  • Error messages carry only advice that applies: the API Manager guidance appears solely
    for Unauthorized action, a missing account is stated plainly, and the private-address
    note no longer appears on a timeout, where the connection had in fact succeeded.

Added

  • hooks.php — optionally apply a package change to CWP when an admin changes a
    service's Product/Service and saves, instead of pressing Change Package afterwards.
    Off by default; enable apply_package_on_service_save in config.php.