Skip to content

Releases: FieryCod/holy-lambda

v0.6.6

05 Feb 18:47
7346178
Compare
Choose a tag to compare

See migration guide

  • [bb layer] Upgrade Babashka to v0.7.4
  • [holy-lambda] Simplify default & async retrievers
  • [bb tasks] Fix tasks hl:doctor command
  • [holy-lambda] Add images of GraalVM 22.2.0
  • [docs] Update docs
  • [babashka] Fix typo in babashka tutorial
  • [holy-lambda] Fix 1 arity of #'hr/status

v0.6.5

13 Dec 14:44
9c2b279
Compare
Choose a tag to compare

See migration guide

v0.6.4

05 Dec 17:56
38aa622
Compare
Choose a tag to compare

0.6.4

  • [holy-lambda] Remove debug info of UserAgent header

v0.6.3

05 Dec 11:34
fd7594e
Compare
Choose a tag to compare

0.6.3

See migration guide

  • [bb layer] Update babashka runtime to version 0.6.3. Put in ServerlessRepo's README.md all necessary information regarding the layer.
  • [bb layer] Update babashka to version 0.6.8.
  • [holy-lambda] Remove :envs property from :ctx to prevent security issues. Use System/getenv instead!
  • [holy-lambda] Add analytics that sends the version of the framework + Java/Babashka version to AWS. Users can disable this option by setting disable-analytics?=true in h/entrypoint.
  • [docs] Update documentation

v0.6.2

01 Nov 13:10
6c3b803
Compare
Choose a tag to compare

0.6.2

See migration guide

  • [bb tasks] Introduce bb hl:update-bb-tasks as an automation for updating to stable version of tasks.

  • [bb layer] Update babashka runtime to version 0.6.2. Runtime does not precalculates the classpath. Cold start should be lower now! :)

  • [bb layer] Use bb.edn for specifying dependencies for babashka code instead of relying on deps.edn.

  • [bb layer] Remove babashka-shim from the runtime, remove direct dependency on holy-lambda.
    Users should put the newest holy-lambda version in bb.edn and use bb hl:babashka:sync to download the dependencies.
    Pack dependencies in the layer and reference it's ARN in template.yml.

    Example

    AWSTemplateFormatVersion: '2010-09-09'
    Transform: AWS::Serverless-2016-10-31
    Description: >
      Example basic lambda using `holy-lambda` micro library
    
    Parameters:
      Runtime:
        Type: String
        Default: provided
      Timeout:
        Type: Number
        Default: 40
      MemorySize:
        Type: Number
        Default: 128
      HL_ENTRYPOINT:
        Type: String
        Default: com.company.example-lambda.core
    
    Globals:
      Function:
        Runtime: !Ref Runtime
        Timeout: !Ref Timeout
        MemorySize: !Ref MemorySize
        Environment:
          Variables:
            HL_ENTRYPOINT: !Ref HL_ENTRYPOINT
    
    Resources:
      BabashkaDepsLayer:
        Type: AWS::Serverless::LayerVersion
        Properties:
          LayerName: BabashkaDepsLayer
          ContentUri: ./.holy-lambda/bb-clj-deps
    
      ExampleLambdaFunction:
        Type: AWS::Serverless::Function
        Properties:
          FunctionName: ExampleLambdaFunction
          Handler: com.company.example-lambda.core.ExampleLambda
          CodeUri: src
          Events:
            HelloEvent:
              Type: HttpApi
              Properties:
                ApiId: !Ref ServerlessHttpApi
                Path: /
                Method: GET
          Layers:
            - <HERE_PUT_PHISICAL_ID>
            - !Ref BabashkaDepsLayer 
     ...
    

v0.6.1

31 Oct 12:10
a7d172d
Compare
Choose a tag to compare

0.6.1

  • [bb layer] Update babashka to 0.6.3
  • [holy-lambda] Parse inner body to :body-parsed (see #74)

v0.6.0

29 Oct 19:16
6cad44f
Compare
Choose a tag to compare

0.6.0

  • [holy-lambda] Improved performance of the runtime (benchmarks are broken unfortunately, since my network is not reliable)

  • [bb layer] Renamed the Entrypoint environment variable for Babashka runtimes to HL_ENTRYPOINT.

  • [bb tasks] Rename hl:sync to hl:babashka:sync. Sync downloads only pods and Babashka deps. Dependencies for babashka should be specified in bb.edn.

  • [bb tasks] Remove :mvn/local-repo from deps.edn. Dependencies for Clojure & Native backend are not downloaded to a local directory.

  • [bb tasks] Project compilation happens without Docker now.

  • [bb tasks] HL reverts allowance for not specifying the backend name.

  • [bb tasks] Rename :runtime in bb.edn to :backend to match the documentation.

  • [bb tasks] Remove :entrypoint and :clj-alias support. Use :compile-cmd in :build instead!

  • [docker] Holy Lambda images are now available at ghcr. Please use the new ghcr.io/fierycod/holy-lambda-builder instead of fierycod/graalvm-native-image. Images don't include aws, aws sam, and clojure.

  • [holy-lambda] Fix application/json content type detection

  • [docker] Holy Lambda images are now available at ghcr. Please use the new ghcr.io/fierycod/holy-lambda-builder instead of fierycod/graalvm-native-image. Images don't include aws, aws sam, and clojure.
    See here(https://github.com/FieryCod/holy-lambda/pkgs/container/holy-lambda-builder/versions)

  • [docker] Holy Lambda now supports aarch64 for all of the runtimes and is now compatible with MacOS M1 :)

  • [docs] Documentation has been updated to match the newest version

  • [babashka] Old babashka artifact has been deprecated.

    Use one of:

  • [babashka layer] Bump babashka to 0.6.2

  • [graalvm] Holy Lambda distributes configuration for GraalVM native-image to let the users use HL without bb tasks.

  • [runtime] Fix :awsRequestId ctx property to point to runtime :invocation-id.

  • [native:conf] Remove warning:

    WARNING: Could not resolve fierycod.holy_lambda.core$entrypoint$fn__6578 for reflection configuration. Reason: java.lang.ClassNotFoundException: fierycod.holy_lambda.core$entrypoint$fn__6578.
    

v0.5.0

14 Sep 09:55
99564b7
Compare
Choose a tag to compare

Rationale
#68

  • [bb tasks] Remove some of the bb tasks:
    • bucket:create
    • bucket:remove
    • stack:invoke
    • stack:api
    • stack:pack
    • stack:deploy
    • stack:describe
    • stack:destroy
    • stack:logs
  • [holy-lambda] Renamed tasks:
    • bb hl:sync (renamed from bb stack:sync)
    • bb hl:compile (renamed from bb stack:compile)
    • bb hl:native:conf (renamed from bb native:conf)
    • bb hl:native:executable (renamed from bb native:executable)
    • bb hl:clean (renamed from bb stack:purge)
    • bb hl:version (renamed from bb stack:version)
    • bb hl:doctor (renamed from bb stack:doctor)
  • [holy-lambda] Performance improvements
  • [holy-lambda] Remove deflambda macro, merge mixins. Use plain defn for lambda definition.
    Holy Lambda exposes a single macro from the core namespace entrypoint. native-runtime namespace has been renamed to
    custom-runtime. custom-runtime namespace is internal, not for public consumption.
  • [holy-lambda] Remove interceptors support. For API's user can easily integrate Holy Lambda with ring or pedestal. The adapters for the mentioned libraries will be published soon.
  • [docker] New compatible fierycod/graalvm-native-image images:
    • :ce - GraalVM CE 21.2.0
    • :dev - GraalVM DEV 21.3.0-dev-20210910_2147
  • [bb layer] Layer version matches the holy-lambda version. New release 0.5.1 includes the latest babashka 0.6.1. Layer should be deployed via serverless repository deploy button:
    https://serverlessrepo.aws.amazon.com/applications/eu-central-1/443526418261/holy-lambda-babashka-runtime
  • Fix Clojure tools warnings, about not existing .jar file
  • Don't re-download HL tasks in CI environments
  • New documentation

v0.2.3 Fixes & full support for arbitrary responses

14 Jul 08:13
0f1c701
Compare
Choose a tag to compare
  • [bb tasks] Add support for passing arguments to commands in -- style.

    Example

    bb stack:invoke --validation-fn '(fn [response] true)'
    
  • [ci] Run integration tests on all supported GraalVM images

  • [bb tasks] Add experimental support for setting some of HL options via AWS variables. This should ease pain of using HL with AWS vault.

  • [docker] Add fierycod/graalvm-native-image:dev which targets GraalVM CE dev releases :)

  • [docker] Add zip program for CI based deployments where tasks are run in Docker context

  • [bb tasks] Remove clj-kondo from the required commands

  • [holy-lambda] Interceptors should not throw when response is byte encoded

  • [holy-lambda] Don't use -H:+AllowIncompleteClasspath on behalf of user

  • [holy-lambda] Use DISABLE_SIGNAL_HANDLERS="true" in bootstrap file

  • [holy-lambda] Allow users to support arbitrary response if the response is byte encoded. Opens a way to support transit and other content-types.

  • [holy-lambda] Properly parse response. Add support for AWS Step Functions.

  • [holy-lambda] Use config-merge-dir instead of config-output-dir when executing bb native:conf. User should be allowed to specify custom configuration in reflect-config.json, resource-config.json that should not be overriden.

  • [holy-lambda] Add support for sending a base64 encoded images from HL hr/png-image

v0.2.2 Support CI deployments. Stabilize HL

01 Jul 07:41
8973972
Compare
Choose a tag to compare
  • [docs] Add documentation about using GraalVM-EE

  • [examples] Add basic cdk example

  • [holy-lambda] System/exit 1 when handler is not found during native:conf

  • [bb tasks] Don't remove empty .aws folder since tasks might not have proper permissions set, bind ~/.aws folder at /.aws path instead.

  • [bb tasks] Add support for CI deployments.

  • [bb tasks] Add support for docker :network option

  • [docs] Add FAQ, CI support documents

  • [bb tasks] Fix using docker in CI environment

  • [bb tasks] Remove broken stack:lint command. Use plain clj-kondo instead

  • [bb layer] Add a type hint & fix bb layer. Users should update to :runtime:version 0.1.2

  • [CI] Add full test suite for basic lambda examples

  • [bb tasks] Add support for multi-environment deployments

  • [bb tasks] Add :validation-fn for bb stack:invoke command:

      bb stack:invoke :validation-fn '(fn [{:keys [body headers statusCode]}] (= body "Hello world"))'