Skip to content

v4.0.0

Choose a tag to compare

@zyupo zyupo released this 10 Oct 12:32
· 43 commits to 4.0 since this release

Spug 4.0 is a major release: a new Pipelines module, credential management, and a fully bilingual English / Simplified Chinese interface, on a back end moved to Django 4.2 and channels 4.

Highlights

  • Pipelines: orchestrate parameter, build, remote command, data transfer, data upload and DingTalk / Feishu / WeCom / Push Assistant notification nodes, with success / failure / always conditions and a live console (docs)
  • Credential management: keep passwords and private keys in one place and share them; pipeline build nodes can reference them (docs)
  • English / Simplified Chinese interface, switchable in the header or on the login page; console output and API error messages are translated as well

Improvements

  • Deploy requests: canary release to selected hosts, retry release on failed hosts only, and a new "canary succeeded" status
  • Push Service settings: bind a Push Assistant account to send SMS, phone call, email and WeChat messages from pipelines
  • Feishu channel for alert contacts, deploy results and scheduled task results; DingTalk / Feishu bot signing
  • Guided key / password setup for the Git repository of a deploy configuration; pipeline build nodes can use stored credentials for private repositories
  • Import hosts from Alibaba Cloud / Tencent Cloud, verify and sync host details (CPU, memory, disks, expiry) in batch, export hosts to Excel
  • Standard deployments can update configuration center values with SPUG_SET and pass build-stage variables to hosts with SPUG_GEV_*
  • SSH compatibility with dash / ash shells and Ed25519 / ECDSA keys; better batch execution and deployment on Windows hosts
  • Front end upgraded to antd 4.24 / xterm 5

Security fixes

  • LDAP filter injection in the login form (#737, #738)
  • Command injection through the address of a ping monitor (#741)
  • LDAP login with a whitespace-only password turning into an unauthenticated bind

Upgrading from 3.x

4.0 requires Python 3.8+, Django 4.2, channels 4 and Redis 5.0+, so 3.x runtimes and Docker images cannot run it. Back up the database first and follow the upgrade guide.

Full changelog: v3.4.0...v4.0.0