host
param in the initializer can be passed with ahttps://
prefix (useful if you're passing it directly from a DID document, e.g. using DIDKit)- added validation of the
method
parameter in request calls: it needs to be either a proper NSID, or a full URL as a string or a URI object - added new optional
params
keyword argument inpost_request
, which lets you append query parameters to the URL if a POST endpoint requires passing them this way default_progress
is set by default to show progress using dots (.
) if Minisky is loaded inside an IRB or Pry context- when experimenting with Minisky in the console, you can now skip the
field:
parameter tofetch_all
if you don't remember the expected key name in the response, and the method will make a request and return an error which tells you the list of available keys - added
access_token_expired?
helper method - moved
token_expiration_date
to public methods check_access
now returns a result symbol::logged_in
,:refreshed
or:ok
- fixed
method_missing
setter onUser
- allow passing non-JSON body to requests (e.g. when uploading blobs)
- allow passing custom headers to requests, including overriding
Content-Type
- fixed error when the response is success but not JSON (e.g. an empty body like in deleteRecord)
- allow passing options to the client in the initializer
- aliased
default_progress
setting asprogress
- added
base64
dependency explicitly to the gemspec - fixes a warning in Ruby 3.3, since it will be extracted as an optional gem in 3.4
- fixed Minisky not working on Ruby 2.x
- authentication improvements & changes:
- Minisky now automatically manages access tokens, calling
check_access
manually is not necessary (setauto_manage_tokens
tofalse
to disable this) check_access
now just checks token's expiry time instead of making a request togetSession
- added
send_auth_headers
option - set tofalse
to not set auth header automatically, which is the default - removed default config file name - explicit file name is now required
- Minisky can now be used in unauthenticated mode - pass
nil
as the config file name - added
reset_tokens
helper method
- Minisky now automatically manages access tokens, calling
- refactored response handling - typed errors are now raised on non-success response status
user
wrapper can also be used for writing fields to the config- improved error handling
- more consistent handling of parameters in the main methods:
auth
is now a named parameter- access token is used by default, pass
nil
or an explicit token asauth
to override params
is always optional
- progress dots in
#fetch_all
:- default is now to not print anything
- pass
'.'
or any other character/string to show progress - set
default_progress
on the client object to use for all#fetch_all
calls
- added
max_pages
option to#fetch_all
#login
and#perform_token_refresh
methods use the JSON response as return value- renamed
ident
field in the config hash toid
- config is now accessed in
Requests
from the client object as aconfig
property instead of@config
ivar - config fields are exposed as a
user
wrapper object, e.g.user.did
delegates to@config['did']
- extracted most code to a
Requests
module that can be included into a different client class with custom config handling - added
#check_access
method - hostname is now passed as a parameter
- config file name can be passed as a parameter
- added tests
Initial release - extracted from original gist:
- logging in and refreshing the token
- making GET & POST requests
- fetching paginated responses