- Fix handling of OneDrive/SharePoint paths and other URLs that contain "#". Thanks to Jonathan Carroll (@jonocarroll).
- Paths containing a hash (#) are encoded in
call_graph_endpoint()
and no longer fail with 404
- Minor backend fixes.
- Fix a bug in
ms_object$get_list_pager()
where thedefault_generator
argument wasn't being used. - Add basic print methods for the
ms_graph_pager
andgraph_request
R6 classes. - Add "Authentication basics" vignette providing more information on this topic.
- New API for working with paged result sets:
- New
ms_graph_pager
R6 class, which is an iterator for the pages in the result. - The
ms_object
base class now has aget_list_pager()
method which returns an object of classms_graph_pager
. - New
extract_list_values()
function to get all or part of the results from a paged result set.
- New
- The current (private)
ms_object$get_paged_list()
andms_object$init_list_objects()
methods are retained for backward compatibility, but are otherwise deprecated. - The
ms_graph$get_user()
method can now get a user by email or display name. Similarly, theget_group()
method can get a group by display name. - Fix a bug in retrieving a paged list of values as a data frame, when
n
(the maximum number of rows) is supplied. - New
ms_graph$get_aad_object()
method to retrieve an Azure Active Directory object by ID. Mostly intended for use with thelist_object_memberships()
andlist_group_memberships()
methods, which return only IDs and not full object information. - All
list_*
R6 methods now havefilter
andn
arguments to filter the result set and cap the number of results. The default values arefilter=NULL
andn=Inf
. Ifn=NULL
, thems_graph_pager
iterator object is returned instead to allow manual iteration over the results. - Export the
find_class_generator()
function. - New "Batching and paging" vignette describing these APIs.
- Add
list_users()
,list_groups()
,list_apps()
andlist_service_principals()
methods to the mainms_graph
client class.
- Add support for batch requests:
- Each individual request is stored in an object of R6 class
graph_request
. - Add
call_batch_endpoint()
function andms_graph$call_batch_endpoint()
method for calling the batch endpoint with a list of requests.
- Each individual request is stored in an object of R6 class
- Handle throttling (HTTP 429 errors) gracefully.
- Allow setting an optional limit to the number of objects returned by the private
ms_object$get_paged_list()
method. - The private
ms_object$init_list_objects()
method now has a...
argument to allow passing extra parameters to class constructors. - Add documentation on how to use
get_paged_list
andinit_list_objects
.
- Internal refactoring to support future extensibility, including transferring some utility functions from AzureRMR to here.
- New "Extending AzureGraph" vignette, showing how to extend this package to represent other object types in Microsoft Graph.
- Switch to AAD v2.0 as the default for authenticating.
- Enhance
get_graph_login
to allow specifying scopes.
- Change maintainer email address.
- Switch to the v1.0 REST endpoint.
- Updated to use the new Graph API calls for managing app passwords. Call the
az_app$add_password()
method to add a password to an app, andaz_app$remove_password()
to remove it. As a security measure, app passwords can no longer be manually specified; instead all passwords are now auto-generated on the server with a cryptographically secure PRNG.- The
az_app$update_password()
method is defunct.
- The
- Better handling of app creation with certificates:
- The
certificate
argument toms_graph$create_app()
can be the name of a .pfx or .pem file, anopenssl::cert
object, anAzureKeyVault::stored_cert
object, or a raw or character vector containing the certificate. - New
az_app$add_certificate()
andaz_app$remove_certificate()
methods, matchingadd_password
andremove_password
.
- The
- Treat the access token as opaque; this prevents errors when logging in without an AAD tenant.
- Fix a bug in user methods for listing objects when the result is empty.
- Fix a bug in retrieving users added to an Azure Active Directory (AAD) tenant from an external directory.
- Allow AAD v2.0 tokens to be used for authenticating. Note that AAD v1.0 is still the default and recommended version.
- Use
utils::askYesNo
for confirmation prompts on R >= 3.5, eg when deleting objects; this fixes a bug in reading the input. As a side-effect, Windows users who are using RGUI.exe will see a popup dialog box instead of a message in the terminal. - Various other bug fixes.
- Improved handling of null object properties.
- Changes to login functionality to better accommodate AzureAuth options. As part of this, the
config_file
argument foraz_graph$new
has been removed; to use a configuration file, call the (recommended)create_graph_login
function.
- Fix some bugs in the login functionality.
- Add direct support for creating apps with certificate credentials.
- Submitted to CRAN