This project uses Break Versioning (https://www.taoensso.com/break-versioning)
[com.taoensso/faraday "1.12.3"]
- Change: Allow multiple GSIs to be updated via
update-table
(now matchescreate-table
). - Change: Upgrade Nippy (see GHSA-vw78-267v-588h and CVE-2024-36114).
[com.taoensso/faraday "1.12.2"]
- Change: Upgrade dependencies, including upgrade to com.amazonaws/aws-java-sdk-dynamodb 1.12.693 to eliminate software.amazon.ion:ion-java@1.0.2 from transitive dependencies (see CVE-2024-21634 and #169).
[com.taoensso/faraday "1.12.0"]
- BREAKING: Drop support for Clojure 1.5 and 1.6 - Clojure 1.7+ now required.
- Change
clj-item->db-item
no longer captures serialize function when namespace is loaded (extend-protocol
can now be used to change serialize behaviour at any time). - Change: Upgrade dependencies, including upgrade to com.amazonaws/aws-java-sdk-dynamodb 1.12.410.
[com.taoensso/faraday "1.11.4"]
- Fix Remove dev dependencies from release (see technomancy/leiningen#2721)
[com.taoensso/faraday "1.11.3"]
- Fix Allow string table names in
query
andscan
[com.taoensso/faraday "1.11.2"]
- New
client-opts
can now include:protocol
(:HTTP
or:HTTPS
) - Fix
client-opts
parsing of:region
is fixed
[com.taoensso/faraday "1.11.1"]
- Change
batch-get-item
, will no longer stitch requests together unlessspan-reqs
is specified. To reinstate the old behaviour, pass:span-reqs {:max 5}
in the options. See #74 and #143.
[com.taoensso/faraday "1.11.0"]
- New
transact-get-items
andtransact-write-items
for transaction support - New
describe-ttl
,update-ttl
andensure-ttl
to manage table TTL configuration - New
client-opts
may now specify:region
as an alternative to:endpoint
- Change
query
,scan
,batch-write-item
, will no longer stitch requests together unlessspan-reqs
is specified. To reinstate the old behaviour, pass:span-reqs {:max 5}
in the options. See #74 and #143. - Change
update-table
now uses current table description to validate GSI throughput updates - Fix
describe-table
now returns:billing-mode :provisioned
instead of:billing-mode nil
[com.taoensso/faraday "1.10.1"]
- New
put-item
and other fns now support lazy seqs, as long as they have been realized - Fix
update-table
should not require thatthroughput
is given for GSIs on-demand tables
[com.taoensso/faraday "1.10.0"]
- New
client-opts
can now include:client
to specify a custom, pre-configured AmazonDynamoDBClient instance - New
create-table
andupdate-table
now support:billing-mode
of:provisioned
(default) or:pay-per-request
(on-demand) - New Accept keywords for index names in
scan
andquery
- New
create-table
andupdate-table
now support:stream-spec
to activate DynamoDB Streams - New
list-streams
,describe-stream
,shard-iterator
andget-stream-records
added to interact with DynamoDB Streams - New
CljVal->DbVal
protocol for extensible serialisation - Change: Upgrade to com.amazonaws/aws-java-sdk-dynamodb 1.11.x
- Change: Migrate from expectations to clojure.test
- Fix: Fix syntax quote for
without-attr-multi-vs
- Fix: Fix 'non-expand' mode
batch-write-item
- Fix: Fix merging of pages in
batch-get-item
[com.taoensso/faraday "1.9.0"]
This is a major feature release with BREAKING CHANGES (see Migration section for details). Big thanks to @ricardojmendez for most of the work for this release!
- BREAKING:
update-item
args have changed (:update-map
is now optional) [@ricardojmendez] [1] - BREAKING:
update-table
args have changed (:throughput
is now optional) [@ricardojmendez] [2] - New:
put-item
,update-item
support for expressions [@leonardoborges #73] - New:
get-item
support for:proj-expr
,:expr-names
[@ricardojmendez] - New:
query
support for:filter-expr
,:proj-expr
[@ricardojmendez] - New:
update-table
support for index modification [@ricardojmendez] - New:
scan
support for indexes,:expr-attr-names
,:proj-expr
[@ricardojmendez] - New:
delete-item
support for expressions [@ricardojmendez] - New:
scan
support forsupport filter-expr
,expr-attr-vals
[@ricardojmendez #90] - New:
scan
support for consistent reads [@ricardojmendez #92] - Change:
update-table
now returns a future instead of a promise (allows exceptions to rethrow) - Change: implementation details now marked as private
- Fix:
remove-empty-attr-vals
vs blank strings [@crough #72]
[1]: (update-item <client-opts> <table> <prim-kvs> <update-map> <opts>)
-> (update-item <client-opts> <table> <prim-kvs> {:update-map <update-map> <other-opts>})
[2]: (update-table <client-opts> <table> <throughput> <opts>)
-> (update-table <client-opts> <table> {:through-put <throughput> <other-opts>})
- New: add sanitization multimethod to strip empty values [@jeffh #67]
- New: temp hack/workaround to get opt-out
attr-multi-vs
behaviour [#63] - New: support proxy username & password [@tokomakoma123 #68]
- New: db-client*: add :keep-alive? option [@kirankulkarni #70]
- Fix: don't remove falsey attr vals [#67]
- Docs: fix
put-item
docstring [#64, #65]
[com.taoensso/faraday "1.8.0"]
- Deps: stop unnecessarily pulling in entire AWS SDK [@jaley #61]
- Fix: use DefaultAWSCredentialsProviderChain as provider [@MichaelBlume #59]
- Performance: upgrade to Nippy v2.9.0
- Fix: relax
AmazonDynamoDBClient
type hint [@ghoseb #62]
[com.taoensso/faraday "1.7.1"]
BREAKING release unless upgrading from v1.6.0-beta1.
- BREAK:
update-item
no longer treatsfalse
as a special value to denote attribute exists in:expected
. Attribute existances is now tested for with the:exists
and:not-exists
keywords [@mantree]. - New: Boolean, Null, Map and List types now supported [@mantree]
- New:
update-item
now accepts the comparison operators in:expected
[@mantree] - Fix: batch operations weren't returning consumed capacity [@johnchapin #49]
- Fix: default AWS creds typo preventing federated IAM roles from working, etc. [@shinep #53]
- Docs: a number of typo fixes + clarifications [@philippkueng @rmfbarker @sheelc @madeye-matt #50 #52 #55 #58]
[com.taoensso/faraday "1.6.0"]
- BREAKING:
update-item
no longer treatsfalse
as a special value to denote attribute exists in:expected
. Attribute existances is now tested for with the:exists
and:not-exists
keywords (@mantree). - NEW:
update-item
now accepts the comparison operators in:expected
(@mantree). - NEW: Boolean, Null, Map and List types now supported (@mantree).
- FIX [#49]: Batch operations weren't returning consumed capacity (@johnchapin).
- NEW: allow reading of binary values written with other (non-serializing) clients.
- Fix [#36]: Batch writes weren't allowing set values.
- CHANGE [#29]:
list-tables
now returns a lazy seq and supports >100 tables (@marcuswr, @paraseba). - NEW [#34]: Add
:query-filter
support toquery
fn (@bpot).
- FIX [#32]: deserialization of falsey values (were returning as nil) (@pegotezzi).
NB: There are important changes in this release that should be non-breaking in most cases, but that you should take note of!
- IMPORTANT (usually non-breaking): numbers are now returned from DDB as
BigInt
s (previouslyLong
s) andBigDecimal
s (previouslyDouble
s). This better reflects that way DDB is actually storing numbers internally, and helps preserve number accuracy in some cases. - Fix slow lein builds by replacing the joda-time version range used by aws-java-sdk with an explicit dependency on joda-time 2.3.
- Can now write unfrozen numbers of type:
BigDecimal
,BigInt
,BigInteger
. In all cases DDB is limited to 38 bits of precision (usefreeze
when you need more precision). - [#28] Add AWSCredentialsProvider support (marcuswr).
db-client*
can now auto-create a DefaultAWSCredentialsProviderChain instance (joelittlejohn).
- Moved most utils to external
encore
dependency. - All fns now take a 'client-opts' arg rather than 'creds' arg. This is non-breaking + purely aesthetic but better represents the arg's purpose.
- DEPRECATED: When providing your own AWSCredentials instance in client-opts please use the
:creds
arg (was:credentials
before).
- #24 Call
distinct
on attr defs (rakeshp).
- #23 Add support for Global Secondary Indexes (GSIs) (rakeshp).
- Bump AWS JDK SDK to 1.7.1.
- #15 Fix issue with aws-java-sdk 1.5.x (paraseba).
- Add support for arbitrary AWS credentials under
:credentials
key (paraseba).
- REVERT AWS Java SDK dependency bump, seems to be causing some issues - will investigate further later.
- Add docstring examples for
scan
,query
condition format. - Make
scan
,query
condition format more forgiving: now accepts single vals like[:eq "Steve]
. - Creds can now be an empty map (or nil) to use credentials provider chain (amanas).
- Bump AWS Java SDK dependency.
- Fix broken
:limit
and segment options. - Bump dependencies.
- Fix
create-table
,ensure-table
regression. - Auto stringify single-arg keywords to match Carmine v2 API. This is not breaking since previous behaviour was just to throw an exception on unfrozen keyword args.
update-table
now allows throughput specification with just :write or :read units.- Added
merge-more
rate-limiting. See batch-op or query/scan docstrings for details. - DEPRECATED:
block-while-status
->table-status-watch
. - BREAKING: Simplify keydef format:
{:name _ :type _}
->[<name> <type>]
. - BREAKING: Pull mandatory
create-table
,ensure-table
args out from opts. update-table
now automatic allows multi-step throughput increases. See docstring for details.