Changelog

[1.6.0]

  • breaking: Refactored get_logger from peak.tools.logging to now accept user-defined log processors via custom_processors_factory parameter, this allows users to define their own log processors and pass them to the logger, this also changes the signature of get_logger to accept custom_processors_factory as a parameter, and drops pretty_print parameter as it is no longer needed and automatically inferred from the system environment, when not using an explicit custom_processors_factory.

    • structlog.processors.EventRenamer("message") is also automatically added to the processors list if not already present in the user-defined processors returned from custom_processors_factory.

    • orjson is now used as the default JSON serializer for the logger when custom_processors_factory is not provided.

    • DEFAULT_SHARED_PROCESSORS, LOG_LEVEL_NAMES_TO_LOG_LEVEL, LOG_LEVEL_TO_LOG_LEVEL_NAMES, default_processors_factory and peak_contexts_processors are now also exposed in the peak.tools.logging module for users to use in their implementations.

  • feat: Added email notification functionality to the SDK and CLI.

    • This new feature enables users to send email notifications to the valid recipients.

    • Workflow watchers can now receive email notifications for workflow executions.

  • feat: Users can now select the number of instances that would run for a service while creating or updating them.

  • fix: Fixed an issue due to which the list_spec_release_deployments method was not working as expected in SDK and CLI.

  • feat: List workflow executions can now be filtered by execution status.

[1.5.0]

  • breaking: Refactored get_logger from peak.tools.logging to now accept user-defined log processors via custom_processors_factory parameter, this allows users to define their own log processors and pass them to the logger.

    • structlog.processors.EventRenamer("message") is also automatically added to the processors list if not already present in the user-defined processors returned from custom_processors_factory.

    • orjson is now used as the default JSON serializer for the logger when custom_processors_factory is not provided.

    • DEFAULT_SHARED_PROCESSORS, LOG_LEVEL_NAMES_TO_LOG_LEVEL, LOG_LEVEL_TO_LOG_LEVEL_NAMES, default_processors_factory and peak_contexts_processors are now also exposed in the peak.tools.logging module for users to use in their implementations.

  • feat: Added permission checking functionality to the SDK and CLI as part of the User resource.

    • This new feature enables users to verify their permissions for specific operations within a tenant’s web application.

    • The SDK includes check_permissions method, and the CLI includes check_permission command to facilitate this.

  • docs: Updated the documentation to include the new User resource.

[1.4.0]

  • feat: Introduced new feature Service in Peak SDK and CLI where you can manage both Web Apps and API Deployments from a single place.

    • Service supports all the functionalities of the Webapp feature with additional support for serviceType, entrypoint and healthCheckURL.

    • A new function and command for testing API type services is also added.

  • docs: Updated SDK and CLI documentation to include the new Service resource.

  • docs: Reorganized the SDK and CLI documentation structure, aiming for improved navigability and organization.

  • docs: Updated the documentation theme, providing a more modern and accessible user experience.

  • docs: Introduced support for multiversion documentation, allowing users to easily access and navigate between different versions of the documentation.

  • fix: Issue with description not being optional when loading template.

  • note: The functionalities provided through the Webapp feature in both Peak SDK and CLI are deprecated and will eventually be removed.

    • This change aims to enhance our offering by consolidating features under the Service feature, which offers a more comprehensive and flexible solution for managing web applications and API deployments.

    • We strongly encourage users to start transitioning to the Service feature to take full advantage of its capabilities, including support for serviceType, parameters, entrypoint and healthCheckURL.

    • Further details on leveraging its functionalities will be provided in our documentation.

  • chore: Updated the development branch flow. Now instead of creating development branch from main as release candidate, we will create separate version branches like 12.10.10 from main.

[1.3.0]

  • feat: Introduced the ability to upload Markdown(.md) and text(.txt) files for descriptions during the creation of block and application specs and deployments. This enhancement facilitates richer and more structured documentation directly within your spec or deployment.

  • feat Introduced a helper function to Press Block Deployments to allow a Block’s source code to access sibling Blocks within an App

  • docs: The documentation to include examples for executing new functionalities via the CLI, providing users with clear, actionable guidance on how to leverage these updates effectively.

  • docs: amended docs around Press parameters

  • docs: Enhanced the documentation to cover new features supported by the CLI, notably:

    • The option to specify a file for the –desc-file property, enabling more detailed and formatted descriptions for blocks and apps.

  • chore: Upgraded version of structlog to v24.1.0.

  • docs: Fixed documentation error, and adding cli & complete examples

  • docs: SDK examples for creating block/app deployment revisions

[1.2.1]

  • chore: Improved the regex to match PII and other sensitive data in log records.

  • feat: Added option to disable data masking in logs records.

  • docs: Updated documentation with example of disabling data masking in logs records.

  • docs: Updated documentation for new workflow features. Workflow SDK and CLI now supports the following:

    • Skippable workflow steps

    • Workflow step auto-retries

    • Conditional execution of workflow steps

[1.2.0]

  • feat: Add support for Press Deployment Revisions:

    • create-deployment-revision

    • describe-deployment-revision

    • list-deployment-revisions

      commands are now available on both Blocks and Apps. A Revision is created by specifying a different release version of the spec currently deployed, along with any revision notes or parameters

  • feat: Add support for Press Build Parameters

    • Build parameters can be defined in the block spec while creating a new block spec or new block spec release, by adding a property of build within the parameters dict, and the desired parts of the config section should also be parameterized using @param:PARAM_NAME syntax.

    • Values for build parameters can then be provided while creating the app or block deployment or revision

    • Build parameter properties follow the same rules as runtime parameters

  • docs: Updated some docs around Press

[1.1.0]

  • feat: All commands now support --output option. This allows you to see the output in either json, yaml, or table format.

  • feat: Add --dry-run option to commands. This allows you to see API calls that the function makes along with the parameters that are sent.

  • feat: Add --paging option to commands. This allows you to see the response in a pager instead of dumping it all into the terminal at once.

  • feat: Add new resource namely tenants which now supports list-instance-options by entity-type.

  • feat: The logging sub-package has been added to peak-sdk under peak/tools - To import logging, just run the following command python from peak.tools import logging from peak.tools.logging import PeakLogger - To instantiate the logger, run the following command python logger: PeakLogger = logging.get_logger() - To use the logger, run the following command python logger.info("some info message")

  • feat: A new function delete_versions is available inside images resource. This allows you to delete many versions at once, using a single call.

  • breaking: The delete_image function now does what the name suggests - delete the complete image including all the versions in the image rather than deleting just the latest version as it used to do.

  • feat: Parameterization is now supported in Press via SDK and CLI. It allows to pass parameters to the resources at runtime which can be used to change the runtime behaviour of the resource.

    • Runtime parameters can be defined in the block spec while creating a new block spec or new block spec release.

    • Initial values for parameters can be provided while creating the app or block deployment.

    • patch_parameters function is added which can be used to update the parameter values of a block deployment.

    • get_parameters function is added which can be used to get the parameter values of a block deployment.

  • fix: Fixed an issue with null values being passed as values if keys in yaml files have empty value.

  • feat: Users can now add instanceTypeId to webapp resource and webapp blocks. Webapp now also supports sticky sessions which we can enable by passing sessionStickiness as True in the webapp resource and webapp block. Enabling session stickiness will tie each user to a specific server for all their requests.

  • feat: Users can now view the status and details (like - step’s run status, step’s outputs, etc) about workflow executions via the SDK and CLI.

  • feat: Users can now view and download logs for images and workflow steps through SDK and CLI.

    • While viewing logs in CLI, users can pass --follow to view the live logs that are updated automatically.

    • Users also have an option to save the logs to a file by using --save option.

  • feat: Add favicon to SDK and CLI docs.

  • feat: While creating or updating images or image-versions, buildDetails and source is now optional for user’s convenience. By default, source will be set to upload.

  • feat: Users can now use --generate option with any command that requires a yaml file. This will generate a sample yaml file with all the required fields with sample values. This can be very helpful when you want to create a resource using the CLI, but don’t want to write the YAML config file yourself.

[1.0.0]

  • feat: Peak SDK is now available on PyPi. 🚀

  • feat: The package has been rebranded as peak-sdk and now comes with a built-in CLI, eliminating the need for separate installation steps.

    • To install the SDK and the CLI, just run the following command    pip install peak-sdk

    • To install directly from GitHub, run the following command    pip install "peak-sdk @ git+https://github.com/PeakBI/peak-sdk.git@{branch-name-or-tag}"

  • feat: Users can now search worflows, images, and versions by passing in their name in the list functions. This will return a list of all the resources that contain the passed value in its name.

  • feat: Yaml file for creating or updating images or webapps is now optional. We can now pass all the required information as arguments to the CLI command.

  • feat: Add create-or-update commands/functions in SDK/CLI resources. This allows us to update an existing workflow or create it if it does not exist.

  • feat Added function and command - patch-workflow. With the help of this, we can just pass the required parameters to update a workflow without need of yaml file.

  • docs: Usage examples for Press SDK have been added.

[0.0.6]

  • fix: Issue with environment variables where characters are getting autoescaped is fixed (#218).

  • breaking: Updated the format of the “release” key from a string value to an object with a nested “version” property to provide more flexibility and clarity in specifying the release version. Documentation is updated to reflect the changes.

    release: {
        version: "0.0.1";
    }
    

[0.0.5]

  • ci: Updated and Published SDK and CLI docs to https://docs.peak.ai/sdk/.

  • feat: Added versioning support to image list-builds function. We can now filter image builds on versions and build status.

  • chore: Added API doc links to all SDK functions.

  • fix: Examples for using templates are fixed (#226).

  • feat: Webapp blocks are now supported in Press SDK and CLI.

[0.0.4]

  • feat: add progress bar in CLI and SDK for artifact compression.

  • refactor: [CLI] pass client object in click context instead of creating it inside every command file.

  • feat: Add support for passing parameters while executing workflows.

  • feat: Send source information (whether call is made from SDK or CLI) in telemetry data.

  • breaking: SDK/CLI for Press Apps now supports new Press APIs.

    • breaking: An App Spec must now be made up of already existing block specs by giving block config info in request body.

    • breaking: The featured field has been removed from the spec definition and is now defined at the root when creating a spec.

    • added: Users can now share specs across different tenants so they can be viewed/deployed outside of the tenant they were created in.

    • breaking: Removed list-revisions and create-revision for Apps deployments. These will be added back soon in upcoming release.

  • breaking: SDK/CLI for Press Blocks now supports new Press APIs which adds support for image versioning as well.

    • added: Blocks are now generic.

    • added: Users can now share specs across different tenants so they can be viewed/deployed outside of the tenant they were created in.

    • breaking: archive and unarchive functions for blocks are removed. We can now use update_spec_metadata to update the spec status.

    • breaking: To create a new block spec release, instead of using update_spec, we can now use create_release SDK function.

    • added: update_spec_metadata is added which can be used to update metadata and discoverability of the spec.

    • breaking: Removed list-revisions and create-revision for Blocks deployments. These will be added back soon in upcoming release.

  • added: Generic list/search functions and commands are added in Press SDK/CLI which will return specs/deployments of any kind (app or block).

  • breaking: ignore_files_glob is not supported when passing artifact information. It is replaced with ignore_files which takes in list of ignorefiles.

  • ci: update branch name regex to support more patterns.

[0.0.3]

  • fix: update(patch) command for resources.image service works with all arguments as optional.

  • fix: updated types in sdk to python >= 3.10 [PEP-585+], fixed lingering type issues in list methods and all sdk methods.

  • refactor: updated list methods in sdk to return flattened list of items when using auto-pagination.

  • refactor: updated RegistryHandler and session methods to be more consistent and robust.

  • refactor: changed list cli method names to avoid shadowing built-in list type.

  • docs: revised examples to be in-line with current state of sdk and updated types in examples.

  • docs: added sections on auto-pagination, template REFERENCES, and usage guides on templating for sdk and cli.

  • breaking: type renamed to image_type in resources.image service, from type to avoid shadowing built-in type.

  • tests: updated all tests and added new tests for missing scenarios, for 100% unit test coverage across cli and sdk.

  • ci: drop typeguard from dependencies and stick with mypy for type checking.

  • ci: added sonarqube for code quality and coverage reporting.

  • ci: added detect-secrets to prevent secrets from being committed to the repository.

  • feat: SDK/CLI now supports Image Management v2 APIs, which adds support for versioning.

    • breaking: In create or update functions, we now need to pass the request details inside body key instead of directly passing them as arguments.

    • added: You can now create image with source set to dockerfile and github as well along with upload.

    • breaking: We need to pass named arguments whenever any cli command needs 2 or more arguments.

    • breaking: create(post) function is updated to support versioning. We now need to pass version as well in the request body.

    • breaking: update(patch) function is removed from both sdk and cli and update-version(patch) is added.

  • feat: SDK/CLI Workflow resources now supports image versions.

  • feat: SDK/CLI now supports Webapp create, read, update, delete (CRUD) and list operations.

  • feat: SDK/CLI now sends usage metrics to Peak. No sensitive/PII data is sent.

  • ci: fix github action to trigger pre-validate checks on correct conditions.