Fixes:
- SDK dependencies updated because of vulnerabilities (System.IdentityModel.Tokens.Jwt 6.22.1 -> 7.6.2, System.Runtime.CompilerServices.Unsafe 4.5.3 -> 6.0.0)
New Features:
- Get-RscOrganization cmdlet
Fixes:
- Get-RscPermission cmdlet parameters
New Features:
- Get-RscWorkload cmdlet - Retrieves information about any supported workload type, with various filtering capabilities.
- Get-RscVmwareVm - Added -Relic switch. Use -Relic:$false to filter out Relics. -Relic will return only Relics. No usage of -Relic will return all (default operation). -Name parameter is now position 0, so you don't have to specify -Name.
- Get-RscNutanixVm - New cmdlet to get Nutanix VMs
- Register-RscRubrikBackupService - New cmdlet to register RBS on VMs
- Get-RscRole - Gets list of RSC Roles
- Get-RscPermission - Gets list of RSC Permissions from Role
- New-RscPermission - Creates new RSC Permission object
- Merge-RscPermission - Merges an RSC Permission object into a Role object
- Set-RscRole - Updates a Role in RSC with a Role object
- New-RscSla - Now accepts -DailySchedule as a parameter
Fixes:
- Issue #112
Breaking Changes:
- Removed legacy Get-RscVsphereVm CS cmdlet. Please use Get-RscVmwareVm.
New Features:
- Set-RscNasShare and Set-RscNasSystem for updating NAS shares and systems.
- Remove-RscNasShare and Remove-RscNasSystem for removing NAS shares and systems.
- Get-RscNasSystem for getting details of NAS systems.
- New-RscNasSystem for registering a new NAS system with RSC.
- Schema Update
Fixes:
Breaking Changes:
- Get-RscNasShare - NasShareId parameter has been renamed to Id.
- Get-RscNasShare no longer accepts NasSystemId. Pass a NAS system type obtained from Get-RscNasSystem to retrieve details of all NAS shares on a NAS system.
- New-RscNasShare - NasSourceId parameter has been renamed to NasSystemId.
Schema Update
Fixes:
- Get-RscSnapshot - Fixed permissions issue.
- New-RscMutationVsphere -Operation CreateAdvancedTag - Select fields by default.
New Features:
- New-RscNasShare cmdlet (and its companion New-RscNasShareInput cmdlet to build the input arguments).
Fixes:
- Fix to Get-RscMssqlInstance to address Issue #79
- Fix to Get-RscMssqlInstance to address Issue #73
- Fix to Get-RscMssqlDatabase to address Issue #75
- Fix to Get-RscMssqlDatabase to address Issue #77
- Fix to Get-RscMssqlAvailabilityGroup to address Issue #74
- Fix to Get-RscSnapshot (SnapshotListQuery)
Breaking Changes:
- Type object's Next() method was renamed GetNext() to follow
PowerShell naming convention (and to make it clear that
$obj.Next() = $x
can't work (but$obj.SetNext($x)
does.)). - Protect-RscSnappable renamed to Protect-RscWorkload to conform to marketing language
- Removed Backup-RscSlaDomain.ps1 (Backup-SlaDomain) as it did not conform to PowerShell naming standards. Please use Protect-RscWorkload to assign an SLA.
New Features:
- Set-RscMssqlAvailabilityGroup - Allows for assigning an SLA to an AG
Fixes:
- Set-RscMssqlDatabase - Fixed issue when setting values for database properties.
- Get-RscMssqlLogShipping - Fixed issue where RscCluster was always required. Now it is only required when supplying other values.
- Set-RscMssqlInstance - Fixed help text.
- Fixed input variables in Windows PowerShell.
- Get-RscSla using -Id parameter workaround. Now returns Name and Id.
- Get-RscSla now properly populates the protected object count.
New Features:
- Added support for subfield arguments
Fixes:
-AddField
and-RemoveField
now expand interfaces.- Get-RscMssqlAvailabilityGroup - Now works for returning back list or by name.
- Get-RscMssqlLogShipping - Now works and no longer references Live Mount
- Remove-RscMssqlLogShippingSecondary - Now works and no longer references Live Mount
- Patched clusterConnection DETAIL profile.
- More details in Get-Help Invoke-Rsc
Breaking Changes:
- Get-RscMssqlInstance - No longer accepts RscHost object any more. Not it accepts a string value for HostName and WindowsClusterName. This is because, there is no value in the RscHost object for getting the MSSQL Instance object as the only option is to query by name and not by ID. Additionally, we need the ability to search for a Instance based on a Windows Cluster Name. This new approach allows for a simpler user experience, as they do not need to make an extra call to get a Host object before requesting the Instance object.
- Added support for fields of type
Long
New Features:
- Toolkit: Operations (patch files) are now part of Toolkit
- AutoFieldSpec: patch file for
QueryCdmMssqlLogShippingTargets
- AutoFieldSpec: patch file for
QueryMssqlDatabaseLiveMounts
- README on how to write patch files.
Fixes:
- Fix for queries that return a single interface object.
See
Tests/unit/Sla.Tests.ps1
. (implemented with type composition in the C# core)
New Features:
- Added pipe support for SLA Cmdlets From PR 57
Fixes:
- Updated help texts From PR 53
- Fixed build and tests for PowerShell 5.1
Fixes:
- Fixed an issue in which certain GraphQL calls responded with
Unable to cast object of type 'Newtonsoft.Json.Linq.JValue' to type 'Newtonsoft.Json.Linq.JObject'.
- Updated help text in New-RscMssqlExport
New Features:
Breaking Changes:
Fixes:
- Limited the number of valid fields displayed in errors from
AddField
to 10 to prevent the terminal from being flooded.
New Features:
- New MsSql API Operation:
DeleteLogShipping
- New Cmdlets for working with SLAs:
Set-RscSla
,Remove-RscSla
,Resume-RscSla
,Suspend-RscSla
,New-RscSlaArchivalSpecs
,New-RscSlaBackupWindow
,New-RscSlaDuration
,New-RscSlaObjectSpecificConfig
,New-RscSlaReplicationSpecs
Breaking Changes:
Get-RscSlaDomain
andNew-RscSlaDomain
Cmdlets have been renamed. The new names areGet-RscSla
andNew-RscSla
respectively.New-RscSnapshotSchedule
Cmdlet has been renamed toNew-RscSlaSnapshotSchedule
.
New Features:
- MsSql cmdlets From PR 34
- New-RscSlaDomain and New-RscSnapshotSchedule cmdlets From PR 39
New Features:
- Get cmdlets for SLAs and vSphere VMs From PR 27 From PR 33
- MsSql cmdlets From PR 30
New Features:
- New Archival API Domain:
New-RscQueryArchival
andNew-RscMutationArchival
. - New Cross Account API Domain:
New-RscQueryCrossAccount
andNew-RscMutationCrossAccount
. - New Syslog API Domain:
New-RscQuerySyslog
andNew-RscMutationSyslog
.
Fixes:
- Fixed issue with sharing connection with nested powershell scripts.
Breaking Changes:
- The Cluster API Domain became too large and was split into 2 domains:
Cluster and Failover Cluster. See:
New-RscQueryFailoverCluster
andNew-RscMutationFailoverCluster
.
Fixes:
- Fixed bug in
New-RscQuery
andNew-RscMutation
that caused GraphQL operations that were not associated with an API domain to fail. All GraphQL operations that were not associated with an API domain are now associated with theMisc
domain.
New Features:
Invoke-Rsc
now handles paging internally. This means that you can now useInvoke-Rsc
to retrieve all items in a list, without having to useGet-RscPages
. For example, to retrieve all clusters:Invoke-Rsc (New-RscQueryCluster -Op List)
or(New-RscQueryCluster -Op List).Invoke()
. Note thatInvoke()
internally callsInvoke-Rsc
. To retrieve 1 cluster:Invoke-Rsc (New-RscQueryCluster -Op List -Var @{first=1})
To retrieve 1,000,000 clusters:Invoke-Rsc (New-RscQueryCluster -Op List -Var @{first=1000000})
Info()
on query object is now more verbose.
Breaking Changes:
Get-RscPages
is sunset. It is replaced byInvoke-Rsc
which now handles paging internally.VarTemplate()
on query object is sunset. It is replaced byExample()
which is more complete.
New Features:
- The SDK now imposes limits on page sizes when retrieving lists
from the API. The new default is 50 items per page.
Note that it should not result in any behavior change for users
as long as they collect pages with
Get-RscPages
(or iterate manually through them). It will cause problems to scripts that assumed that the API would return all items in a single response and their deployment lists more than 50 items.
Breaking Changes:
Get-RscPages
now takes for parameter aRscQuery
object instead of a script block. SeeGet-Help Get-RscPages
for details.
Fixes:
- Fix install on Windows.
- Removed format files for MssqlDatabase and VsphereVm.
Fixes:
- Fix case sensitivity issue with documentation files.
- Fix install on Linux.
New Features:
New toolkit scripts:
- Backup-SlaDomain
- Export-RscMssqlDatabase
- Get-RscManagedVolume
- Get-RscMssqlAvailabilityGroup
- Get-RscMssqlDatabaseFiles
- Get-RscMssqlDatabase
- Get-RscMssqlDatabaseRecoverableRanges
- Get-RscMssqlDatabaseRecoveryPoint
- Get-RscMssqlInstance
- Get-RscMssqlLiveMount
- New-RscMssqlLiveMount
- New-RscMssqlLogBackup
- New-RscMssqlRestore
- New-RscMssqlSnapshot
- Remove-RscMssqlLiveMount
- Set-RscMssqlDatabase
- Start-RscManagedVolumeSnapshot
- Stop-RscManagedVolumeSnapshot
New Features:
- New methods on Field objects:
SelectedFields()
,UnselectedFields()
andAllFields()
. New-RscQuery
andNew-RscMutation
for generic queries and mutations. For example to amend an existing query:$query = New-RscQuery -Copy $query -AddField ..
or to create a new query based off a GraphQL root field:New-RscQuery -GqlQuery clusterConnection -AddField ..
- New param to
Get-RscCluster
:Get-RscCluster -AsQuery
returns the query object instead of executing it. - Total query and mutation cmdlets is now at 52, see: docs/domains_and_operations.md
New Features:
- New cmdlet:
New-RscQueryManagedVolume
that covers theManagedVolume
API domain. - More documentation in Get-Help for the RSC cmdlets.
Fixes:
- Fixed bug with passing lists of enums. For example:
New-RscQueryVsphere -TopLevelDescendantsList -Var @{typeFilter = @(
[RubrikSecurityCloud.Types.HierarchyObjectTypeEnum]::WINDOWS_CLUSTER,
[RubrikSecurityCloud.Types.HierarchyObjectTypeEnum]::PHYSICAL_HOST)}
Deprecations:
Breaking Changes:
-Patch
was replaced with-AddField
and-RemoveField
- Experimental New-RscQueryGql* cmdlets are removed
New Features:
-
Refactor! This update is a major refactor of the SDK that invalidates all previous versions (because all cmdlet names have changed):
The 2-step operation of first asking for "inputs"
$inputs = Invoke-RscQuery<Domain> -<Operation> -GetInput
and then executing with the inputs
Invoke-RscQuery<Domain> -<Operation> -Input $inputs
is now renamed to first creating a query
$query = New-RscQuery<Domain> -<Operation>
and then executing the query
$result = Invoke-Rsc $query
or equivalently
$result = $query.Invoke()
-
SDK Extensions are renamed to SDK Toolkit, and the layout under rubrik-security-cloud/Toolkit was reworked.
-
Experimental New-RscQueryGql* cmdlets are introduced
Fixes:
Deprecations:
Breaking Changes:
- All cmdlets were renamed in the refactor.
For example,
Invoke-RscQueryCluster
is nowNew-RscQueryCluster
. - Extensions directory was renamed to Toolkit.
New Features:
- Support for PowerShell 5.1
Invoke-Rsc -Query
now acceptsRscQuery
objects for input.RscQuery
now have anInvoke()
method that executes the query.-Patch
now has auto-completion.Invoke-Rsc
now supports GraphQL query strings with inline variable definitions (see in its examples).Get-RscHelp -LookupSchema
is an introspection tool to help you look up elements in the RSC GraphQL schema.
Fixes:
- Unknown elements in API server responses are now ignored instead of causing an error. This is useful when a newer API server returns new fields that are not yet in the SDK, or when an older API server returns fields that are not in the SDK anymore.
- Token auto-refreshes on cmdlet calls made within 5 minutes of token expiration.
- Fix for Invoke-RscQueryAzure commands that overlapped
(e.g.
(Invoke-RscQueryAzure -Subscriptions -GetGqlRequest)
.operationName --> QueryAzureSqlDatabase
)
Deprecations:
Breaking Changes:
Invoke-Rsc -Query .. -Variables ..
is renamed toInvoke-Rsc -GqlQuery .. -Var ..
RscCmdletInput
is renamed toRscQuery
Fetch()
is renamedSelectForRetrieval()
New Features:
- RscCmdletInput has 2 new methods,
VarInfo()
andInfo()
- new (advanced) documentation:
docs/graphql_model.md
Fetch()
method on schema types.
Fixes:
- Fix bug in API server error reporting
- The term "Op" or "Operation" was used in the SDK where it was really referring to a GraphQL Root Field. This has been fixed.
Deprecations:
Breaking Changes:
- Assemblies are no longer installed at the root of the output
directory, but instead in a platform subdirectory:
net472
ornet6.0
New Features:
- New Invoke parameters:
-Patch
,-PatchFile
- RscCmdletInput: new FieldInfo() method that returns a link to the online documentation for the field.
- Extension scripts now live in the
Extensions
top directory. -Input
on cmdlets that accepts aRscCmdletInput
object: the type you retrieve with-GetInput
. For example:$i=(Invoke-RscXxx -GetInput); ...; Invoke-RscXxx -Input $i
- New input profile
-InputProfile FULL
which creates a field specification that includes all fields recursively. This is useful for studying/debugging and for custom operations. NOTE: TheFULL
profile will typically generate queries that exceed the query complexity limit of the API server. It is not meant to be sent out as-is to the API server. Instead, it is meant to be used as a starting point for custom operations. Get-RscCmdlet -Locations
shows the various (FS) locations where the SDK looks for files.Samples/AllCmdlets.sample.ps1
now accepts a-GetGqlRequest
that will save the GraphQL query to file for every command in the SDK into a local./gql/
directory. CAUTION: This will writes hundreds of files to disk!- New doc files: docs/faq.md, docs/input_model.md
Fixes:
- API server errors on query complexity are now bubbled up to the user
Invoke-RscQueryCluster -List -InputProfile DETAIL
andGet-RscCluster -Detail
did not work because of query complexity. They were fixed by providing the override gql fileOperations/DETAIL/QueryClusterConnection.gql
Remove-NullProperties
now works with null input.
Deprecations:
-Arg
is deprecated in favor of-Var
(for variables).-Arg
will be removed in a future release.=InputProfile
is deprecated in favor of-FieldProfile
.=InputProfile
will be removed in a future release.
Breaking changes:
- Cmdlets'
-GetInputs
is renamed to-GetInput
. - RscGqlRequest.DefaultQueryFileName is not a method anymore but a property.
New Features:
Fixes:
$PROFILE
is not expected to be set anymore.
Breaking changes:
- Custom operations are not expected to be in the same directory
as
$PROFILE
anymore. Instead, the$RSC_CUSTOM_DIR
environment variable is used to locate them. If this variable is not set, it defaults to the current working directory.
New Features:
Invoke-RscQueryDb2
Invoke-RscMutateDb2
Get-RscHelp -CustomOperations
Invoke-Rsc* -GetGqlRequest
, which returns aRscGqlRequest
objectInvoke-Rsc* -InputProfile CUSTOM
- Override of default field spec with
[RubrikSecurityCloud.Files]::GetSdkOperationsDir("DEFAULT")
Fixes:
- Added
ActivitySeriesId
to Get-RscEventSeries
Breaking changes:
-InputProfile DETAILS
is now-InputProfile DETAIL