- added cut variable functionality to JSON keys, with also the option to reference
multiple cut variables so long as the variables are all strings:
"${KEY}${KEY_2}": "val_3"
- support multiple headers for gRPC requests
- changed valid cut variable regex from
[A-Za-z_]
to[A-Za-z_0-9]
as alpha numerics were the intended format
- migrated
cargho
back toargh
since new version was released
- migrated
argh
tocargho
crate
- added
dark man
command for additional documentation, can be excluded from build with the--no-default-features
flag - added
dark vreel
command to support virtual reels allowing mixing of arbitrary cuts and frames in a chosen order:dark vrecord ./test_data/post.vr.json
- added partial and unordered response validations to filmreel
- implemented subset of
jql
for mutable selections of the response json thejql
library can be included with the--features=filmreel/full_jql
flag - an empty body in the request is now appropriately represented as a missing
body
key rather than"body": {}
take
andrecord
can now accept a mixture of filepaths and json strings:dark take ./test_data/post.01s.body.fr.json '{"new":"value"}' ./test_data/post.cut.json
dark take
command simplified, if--cut
not provided, will try to look for a cut file in the same directory as the given frame json
- added
--import-path
fordark --proto
arguments specifying paths for proto definition lookup - added
dark record --duration
to display total time elapsed in a record session
- timestamps are added to recordings:
dark record record ./test_data post --timestamp
- 30 sec default timeout can now be overridden:
dark record record ./test_data post --timeout 2
- reel sequence numbers are now checked for duplicates
- range is added to recordings:
dark record --range "<start_u32>:<end_u32>" ./dir/ my_reel_name
- range is added to recordings:
dark record --range "<start_u32>:<end_u32>" ./dir/ my_reel_name
grpcurl
errors propagate to stdout properly"request"["form"]
request building URL functionality moved to"request"["query"]
"request"["form"]
now properly builds the form data of the HTTP request
- request retry attempts now include a
process_response
comparison ToTakeHiddenColouredJson
is now a generic traitToStringHidden
is now a generc trait- moved styler out of take.rs and into lib.rs
- frame response body is now optional
- removed YAML deserialization now that
grpcurl
properly emits JSON errors - added retry
attempts
to frame requests:{"request":{"attempts": {"times": 5, "ms": 500}}}
- added component reel support, component reels are generated as a prelude to the provided reel:
dark record --component "<dir>&<reel_name>" ./dir/ my_reel_name
- added anyhow error handling
--cut-out
can now be returned on a failedrecord
ortake
- added hidden variable support, hidden variables are defined with a leading underscore:
${_HIDDEN}
- added
dark version
command - moved common parameters into the main
dark
command to be shared across subcommands
- HTTP support
- added
form
key to HTTP frame requests:{"request":{"uri":"POST post","form":{"key":"val","array[0]":"val0"}}}
- full JSON object storage and retrieval, the cut register is no longer a flat associative array, strings are still used to map to JSON objects for templating
- variable discarding:
${lowercase}
variables will only be kept around for the duration of the frame - headers and entrypoints can be stored and read on a per JSON frame basis
- SOPS/JSON secrets support