Skip to content

Conversation

@caronc
Copy link
Owner

@caronc caronc commented Dec 7, 2025

Description:

Related issue (if applicable): refs n/a

This pull request focuses on developer and operator usability improvements in
Apprise-API, with a particular emphasis on:

  • Improved instructional text and layout in the configuration template.
  • Minor template clean-up and formatting alignment for the help content.
  • Updated the configuration list view to support API based calls so it can return JSON when requested,
    instead of always rendering the template.
    • This enables programmatic consumption of configuration IDs/keys.
  • The API version is now exposed in headers in addition to the Apprise library
    version, reducing confusion about the relationship between the two packages.
  • /cfg/<key> now accepts POST in addition to the previous retrieval approach acting exactly how /get/<key> POST works. /get/ would return the users configuration when it was posted to. It makes sense to use /cfg/<key> as well for users who copy/paste URL's from their Apprise API instance directly (from the browser URL). Basically /cfg/<key> is now an alias of /get/<key>
    • /get/<key> remains supported for backwards compatibility. No plans on removing this either.
  • Expanded swagger.yaml substantially to better document the service.
    • Added a dedicated docker-compose.swagger.yml to launch Swagger UI pointing
      at the repository swagger.yaml without altering Apprise-API runtime.

      docker compose -f docker-compose.swagger.yml up -d
      # Browse:
      #   http://localhost:8001
  • improvements to README.md
  • heath checks are now live when viewing the website
  • heavy changes to workflow:
    • development environment is now just tox -e runserver
    • improvements to linting and formatting

In short, this is a huge refactor of the existing setup 🔥 🚀

Checklist

  • The code change is tested and works locally.
  • There is no commented out code in this PR.
  • No lint errors (use ruff)
  • Tests added

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances the Apprise API GUI with improved user experience features and API consistency. It adds the ability to copy the Config ID to clipboard, allows retrieving configuration via POST to /cfg/<key> (in addition to /get/<key>), and displays both the Apprise API and Apprise Library versions in the header to reduce confusion between the two packages.

Key changes:

  • Added Config ID copy-to-clipboard button functionality in the GUI
  • Extended /cfg/<key> endpoint to accept POST requests for configuration retrieval (mirrors /get/<key>)
  • Updated header to display both Apprise API version and Apprise Library version
  • Extensive CSS formatting improvements for consistency across theme files

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
apprise_api/static/css/theme-light.min.css CSS formatting improvements: consistent spacing, proper indentation
apprise_api/static/css/theme-dark.min.css CSS formatting improvements: consistent spacing, proper indentation
apprise_api/static/css/base.css CSS formatting improvements and new styles for Config ID copy button
apprise_api/core/middleware/theme.py Import reordering for better organization
apprise_api/api/views.py Refactored config retrieval logic into shared _get_config_response helper, added POST handler to ConfigView
apprise_api/api/tests/test_manager.py Added comprehensive tests for new POST /cfg/<key> endpoint
apprise_api/api/templates/config.html Added Config ID copy button and updated copyToClipboard function signature
apprise_api/api/templates/base.html Updated header to display both API and Library versions
apprise_api/api/context_processors.py Updated to return both APPRISE_API_VERSION and APPRISE_LIB_VERSION
apprise_api/init.py New file defining Apprise API package version

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 33 out of 45 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@caronc caronc merged commit 00013b4 into master Dec 13, 2025
1 check passed
@caronc caronc deleted the gui-improvements branch December 13, 2025 21:36
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Dec 14, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [caronc/apprise](https://github.com/caronc/apprise-api) | minor | `1.2.6` -> `1.3.0` |

---

### Release Notes

<details>
<summary>caronc/apprise-api (caronc/apprise)</summary>

### [`v1.3.0`](https://github.com/caronc/apprise-api/releases/tag/v1.3.0): Apprise API Release v1.3.0

[Compare Source](caronc/apprise-api@v1.2.6...v1.3.0)

##### Overview

This is a signifigant release that refactors almost the entire website giving it a much more polished/improved look.

- Improved instructional text and layout in the configuration template.
- Minor template clean-up and formatting alignment for the help content.
- Updated the configuration list view to support API based calls so it can return JSON when requested,
  instead of always rendering the template.
  - This enables programmatic consumption of configuration IDs/keys.
- The API version is now exposed in headers in addition to the Apprise library
  version, reducing confusion about the relationship between the two packages.
- `/cfg/<key>` now accepts `POST` in addition to the previous retrieval approach acting exactly how `/get/<key>` POST works. `/get/` would return the users configuration when it was posted to.  It makes sense to use `/cfg/<key>` as well for users who copy/paste URL's from their Apprise API instance directly (from the browser URL). Basically `/cfg/<key>` is now an alias of `/get/<key>`
  - `/get/<key>` remains supported for backwards compatibility. No plans on removing this either.
- Expanded `swagger.yaml` substantially to better document the service.
  - Added a dedicated `docker-compose.swagger.yml` to launch Swagger UI pointing
    at the repository `swagger.yaml` without altering Apprise-API runtime.

    ```bash
    docker compose -f docker-compose.swagger.yml up -d
    # Browse:
    #   http://localhost:8001
    ```
- improvements to README.md
- heath checks are now live when viewing the website
- heavy changes to workflow:
  - development environment is now just `tox -e runserver`
  - improvements to linting and formatting

##### 💡 Features

- Support HTTP\_PORT as Docker environment variable by [@&#8203;caronc](https://github.com/caronc) in [#&#8203;280](caronc/apprise-api#280)

- Massive Application Refactor by [@&#8203;caronc](https://github.com/caronc) in [#&#8203;283](caronc/apprise-api#283)

##### ❤️ Life Cycle

- Bump actions/checkout from 5 to 6 in the actions group by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;281](caronc/apprise-api#281)

**Full Changelog**: <caronc/apprise-api@v1.2.6...v.1.3.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2511
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants