Releases: pspete/psRadiantOne
Releases · pspete/psRadiantOne
Release list
v0.5.66
psRadiantOne v0.5.66
Added
- Computed attribute commands:
Get-R1ComputedAttribute,Add-R1ComputedAttribute,
Set-R1ComputedAttributeandRemove-R1ComputedAttribute, which wrap the two coupled changes a
computed attribute is in the object model - the expression, and the computed origin of the
attribute it is presented as. A computed attribute pipes fromGet-R1ComputedAttributeto the
others. New-R1ComputedAttributeExpression -valuetakes the values in the order the signature lists them
and names each from the function's own parameters.-valueskeeps taking them keyed by name.
Changed
New-R1DirectoryEntry -attributes,Set-R1LogSetting -advancedPropertiesand
Set-R1PipelineConnectorConfig -propertiestake a hashtable keyed by name, such as
@{ cn = 'User One'; objectClass = 'top', 'person' }, as well as a list of name and value items,
which is still sent unchanged.Set-R1DirectoryEntry -add,-deleteand-replacetake a hashtable keyed by attribute name,
can be combined in one call, and bind from the pipeline by property name.
-modificationsstill takes the modifications in the API's own shape.
Fixed
Get-R1Task -idandGet-R1TaskLog -idtaketaskIdas an alias, so the launched task
Initialize-R1Cache,Import-R1DirectoryLdif,Import-R1StoreDataandReset-R1StoreIndex
return pipes straight into them. Previously the property bound to nothing andGet-R1Task
returned every task.New-R1RecursiveSchemaRelationshiptakes the-depththe API requires. Without it every call
was refused with'depth': must not be null.Set-R1DirectoryManagersends both password values base64 encoded, as the control panel does.
The plaintext the published schema documents was refused with
one or more fields have invalid values. Please check the API specs for allowed values.Set-R1Taskno longer sends theN_AsentinelGet-R1Taskreports forexecutionIntervalon a
non-recurrent task back on the PUT, which the API rejected withInvalid time format: N_A.
v0.4.54
psRadiantOne v0.4.54
Added
- Read commands for the directory namespace configuration which had none:
- Caches:
Get-R1Cache,Get-R1CacheProperty,Get-R1CacheRefresh,
Get-R1CacheRealTimeConnector,Get-R1CacheRealTimeConnectorDiagnostic,
Get-R1CacheRealTimeConnectorConfigandGet-R1CacheRealTimeConnectorType. A cache pipes to
the other cache commands by its label. - LDAP and database proxies:
Get-R1NamingContextLdapProxyBackend,
Get-R1NamingContextLdapProxyAdvanced,Get-R1NamingContextMergedBackendand
Get-R1NamingContextDbProxyProperty. - Content, label and link nodes:
Get-R1NamingContextContentProperty,
Get-R1NamingContextContentRdnAttribute,Get-R1NamingContextContentAdvanced,
Get-R1NamingContextConfigurationParameter,Get-R1NamingContextLabelProperty,
Get-R1NamingContextLinkProperty,Get-R1NamingContextLinkParameterTree,
Get-R1NamingContextLinkParameterTreeAttributeandGet-R1NamingContextLinkParameterString. - The object builder:
Get-R1PrimaryObject,Get-R1AvailablePrimaryObject,
Get-R1SecondaryObjectandGet-R1ComputedAttributeFunction. - Directory stores:
Get-R1StorePropertyandGet-R1StoreBackup. Get-R1NamingContextInterceptionScriptCodeandGet-R1NamingContextReplication.
- Caches:
- Format views listing caches, real time connectors and their types, computed attribute functions,
content RDN attributes and link parameter attributes as tables. Get-R1PasswordPolicy -Defaultreturns the default password policy, which the API identifies by
an empty policy name and-policyNamecould not ask for.- Commands which configure LDAP and database proxies:
Mount-R1NamingContextBackendmounts an LDAP directory or a database on a naming context node.Set-R1NamingContextLdapProxyBackendandSet-R1NamingContextLdapProxyAdvancedupdate an
LDAP proxy.Add-R1NamingContextMergedBackendandRemove-R1NamingContextMergedBackendmerge a second
LDAP data source into an LDAP proxy, and remove it again.Set-R1NamingContextInterceptionScriptCodereplaces the interception script of a naming
context.
- Commands which configure label and content nodes and the object builder:
Set-R1NamingContextLabelPropertyupdates a label node.Set-R1NamingContextContentPropertyandSet-R1NamingContextContentAdvancedupdate how a
content or container node names and presents its entries.Set-R1SecondaryObjectsaves the object model of a primary object, andGet-R1RelatedObject
returns the objects related to it for adding to the model.
- Commands which build the parts of an object model in the object builder:
New-R1ObjectInputSource,
New-R1ObjectExtensionandNew-R1JoinProfilebuild input sources, extensions and joins,
New-R1ComputedAttributeExpressionbuilds a computed attribute expression from a function,
Test-R1ComputedAttributeExpressionchecks that one compiles, and
Convert-R1ComputedAttributeExpressionrewrites expressions for a renamed attribute. Each returns
its result for saving withSet-R1SecondaryObject. - Commands which manage RadiantOne Directory stores:
Set-R1StoreProperty,Reset-R1StoreIndex,
Backup-R1Store,Export-R1StoreBackup,Restore-R1StoreandImport-R1StoreBackup.
Mount-R1NamingContextBackendmounts a store with-Store.
Import-R1StoreDatainitializes a store from an LDIF file. - Commands which create and manage persistent caches:
New-R1Cache,Set-R1CacheRefresh,
Initialize-R1Cache,Set-R1CachePropertyandImport-R1Cache, and for real time refresh
Set-R1CacheRealTimeConnectorConfig,Export-R1CacheRealTimeConnectorScriptand
Invoke-R1CacheRealTimeConnectorScript.Remove-R1Cachedeletes a cache. New-R1NamingContextInterceptionScriptandSet-R1NamingContextInterceptionScriptgive a content
node a new interception script, or one which already exists.
Fixed
- A command issued before
Connect-R1Sessionstops at the session check. The check reported a
terminating error, which ended the check alone: the command carried on and failed a second time
on the request, reporting an invalid URI. New-R1NamingContextContentandNew-R1NamingContextContaineralways send
isQuoteTableNames,isQuoteColumnNamesandisRelatedObjectsOnly, as false unless
specified.isRelatedObjectsOnlywas previously left out unless given, and the API takes an
absent value to be true.Set-R1NamingContextContentAdvancedclears a where clause when given an empty string, sending it
as the control panel does. It sent null, which the API ignores.Test-R1Acisends the ACI string as the request body, which is what the endpoint reads. It sent
an object built from its parameters, which came back as an unparsable ACI string, so it now takes
-aciStringalone.New-R1Acibuilds an ACI from individual permissions.Set-R1Acileaves the ACI string out of an update, which is what the control panel does: the
server builds it from the other properties, and sending the string it built for the ACI as it
stood was refused with 409. An emptyloaOperator,applyGroupDnsandapplyIpsare left out
too, andtargetAttributesis sent as null rather than an empty list.Set-R1PasswordPolicycreates a policy which does not exist, starting from the empty policy the
API supplies. It read the named policy first, and that read answers 500 when the policy is not
there, so nothing was ever sent.Set-R1FIDUserRolesets the roles on the user. It used an endpoint the API marks deprecated,
which a RadiantOne 8.5.3 deployment answers 404.Get-R1PasswordPolicy -NewPolicysends the policy name the endpoint requires, which it answered
"Required parameter 'policyName' is not present." without.Remove-R1DataSourcePluginno longer fails a removal the API carried out. The API answers a
successful delete with HTTP 500 and no error details; the plugin listing is now checked on error,
and gone from the listing is treated as success, with a warning rather than a terminating error.
v0.3.38
psRadiantOne v0.3.38
Added
Import-R1DataSourcetakes-overrideExisting,-performOpOnSchemasand-crossEnvironment, and
Export-R1DataSourcethe last two. An import is refused where the data source already exists
unless-overrideExistingis given. Only the options supplied are sent.New-R1DataSourceandSet-R1DataSourcetake-sdcMappings, the Secure Data Connector mappings
the API defines for an LDAP or database data source.- Format views for the types returned by the data catalog, directory namespace, administration and
settings commands. Data sources, data source types, schemas, tables, fields, relationships, naming
contexts, directory entries, views, users, roles, tasks, ACIs, feature flags, file manager
directories and dashboard items are listed as tables rather than a page per object, and
Format-Listrenders the nested permission, log and counter blocks which previously printed as
@{...}. Dates display in local time. Nothing is lost:Select-Object *andFormat-Liststill
reach every property, including a task's log and an interception script's contents.
Changed
Set-R1DataSourcerequires either-passwordor-useExistingCredentials. They cannot be
combined, and a call giving neither is refused. An existing call which updates a data source
without setting a password needs-useExistingCredentialsadding to it.Get-R1FileManagerDirectoryreturns the directory entries rather than the object which wraps
them, so they can be filtered and piped. Each carriesuploadAllowed, the flag the API returns
for the directory listed.-Pathis optional onExport-R1DataSource,Export-R1DataSourceType,
Export-R1DirectorySchemaFile,Export-R1FileandSave-R1DirectoryLdif, and takes a directory
or the full path of a file. A download is saved under the name the API sends it with, or under the
name the path ends in, and without a path to the current user's Downloads directory.
Fixed
- The five export commands write a binary download intact. An archive had been written out as one
decimal number per byte, so it could not be opened. - A command no longer fails when the API answers a successful request with a message rather than
JSON. The message is warned and returned. Add-R1DataSourcePluginreturns the staged import, which carries the id
Complete-R1DataSourceTypeImportandRemove-R1DataSourceTypeImportact on.Set-R1DataSourcekeeps the stored password of an LDAP or database data source, which sending
null had cleared, and leaves a nullgroupIdorkerberosProfileas the API returned it.Set-R1DataSource,New-R1DataSource,Set-R1DataSourceTypeandSet-R1SchemaFullObjectno
longer send a collection holding nothing where the API returns null. One such record could not be
read back, and made every later read of any data source fail.Set-R1SchemaFullObjectsends the schema'sobjectsback, which it had left out of the update.
v0.2.29
v0.1.3
psRadiantOne v0.1.3
First release. Everything below is new, so the entries are grouped by the area of the RadiantOne API
they cover rather than split into added, changed and fixed.
Added
Session & authentication
Connect-R1Session/Disconnect-R1Session/Get-R1Session,Update-R1AuthTokenand
Reset-R1Password.-BaseURItakes the API endpoint address, which on a cloud tenant is the
control panel address with/apiappended; both are listed in the EOC Application Endpoints panel.
An expired password is surfaced byConnect-R1Sessionas the reset information the API returns,
whoseresetTokendrivesReset-R1Password.Disconnect-R1Sessiontakes-Forceto clear the local session where the token could not be
revoked. Revoking requiresSCOPE_AUTH_TOKEN_REVOKE; without it the token stays valid, so by
default the failure is reported and the session left in place, keeping the revocation retryable.Test-R1AdapTokenandTest-R1CallerPrivilege.Get-R1AccessToken,New-R1AccessToken,Remove-R1AccessToken. The token value is returned only
when it is created and cannot be retrieved again.
Users, roles and the directory manager
Get-R1FIDUser,New-R1FIDUser,Set-R1FIDUser,Remove-R1FIDUserandSet-R1FIDUserRole.
Get-R1FIDUserfollows the API's cursor pagination and returns every page. Roles may be supplied
when creating or updating a user, which the API accepts despite the schema marking them read-only.Get-R1FIDRole,New-R1FIDRole,Set-R1FIDRole,Remove-R1FIDRole.Get-R1DirectoryManager/Set-R1DirectoryManager,Get-R1SpecialGroup/Set-R1SpecialGroup.
Security settings
- Access control:
Get-R1AccessControlSetting/Set-R1AccessControlSetting,Get-R1Aci,
New-R1Aci,Set-R1Aci,Remove-R1Aci,Get-R1AciLocationandTest-R1Aci. - Attribute encryption:
Get-R1AttributeEncryption/Set-R1AttributeEncryption,
Get-R1AttributeEncryptionKmsSetting/Set-R1AttributeEncryptionKmsSettingand
Update-R1AttributeEncryptionKey. - Client certificate truststore:
Get-R1TruststoreCertificate,Add-R1TruststoreCertificate,
Remove-R1TruststoreCertificateandExport-R1TruststoreCertificate. - External token validators:
Get-R1TokenValidator,New-R1TokenValidator,Set-R1TokenValidator
andRemove-R1TokenValidator. - OIDC providers:
Get-R1OidcProvider,New-R1OidcProvider,Set-R1OidcProvider,
Remove-R1OidcProvider,Get-R1OidcLoginInfo,Get-R1OidcDiscoveryEndpoint,
Get-R1OidcDiscoveryInfoandGet-R1OidcScopesClaim. - Audit logging:
Get-R1AuditLogSetting/Set-R1AuditLogSettingandExport-R1AuditLog. - Password policies:
Get-R1PasswordPolicy,Set-R1PasswordPolicy,Remove-R1PasswordPolicy,
Get-R1PasswordDictionary,Add-R1PasswordDictionaryWord,Remove-R1PasswordDictionaryWord,
Get-R1PasswordEncryptionandTest-R1PasswordStrengthRule.
Platform settings
- Configuration pairs:
Get-/Set-R1ChangeLogSetting,Get-/Set-R1GlobalAttributeSetting,
Get-/Set-R1LdapClientAccess,Get-/Set-R1LdapClientAccessMapping,
Get-/Set-R1RestClientAccess,Get-/Set-R1ControlPanelConfiguration,
Get-/Set-R1GlobalLimit,Get-/Set-R1AccessRegulationLimit,Get-/Set-R1BackendLimit,
Get-/Set-R1CustomLimitandGet-/Set-R1Feature. - Log settings:
Get-R1LogSetting/Set-R1LogSetting, addressing a component, a data source or a
plugin, andGet-R1LogTimezone. - Identity observability:
Get-/Set-R1PipelineConnectorConfig,Get-R1PipelineConnectorType,
Reset-R1PipelineConnector,Suspend-R1Pipeline,Resume-R1Pipelineand
Invoke-R1PipelineConnectorScript. - Entry statistics:
Get-R1Operation,New-R1Operation,Stop-R1Operation,Resume-R1Operation
andGet-R1Statistic. - Licensing:
Get-R1License,Set-R1LicenseandRead-R1License. - Deployment and dashboard readers:
Get-R1Dashboard,Get-R1DashboardLink,Get-R1ProductVersion,
Get-R1ServiceSummary,Get-R1WhatsNew,Get-R1SaasConfiguration,Get-R1LoginPageInfo,
Get-R1ControlPanelMessage.
Directory namespace
- Global namespace settings:
Get-R1GlobalInterceptionSetting/Set-R1GlobalInterceptionSetting,
Get-R1GlobalSpecialAttribute/Set-R1GlobalSpecialAttributeandGet-R1GlobalDynamicGroup. - Naming contexts:
Get-R1NamingContext,Get-R1NamingContextChild,New-R1NamingContext,
Remove-R1NamingContext,Enable-R1NamingContext/Disable-R1NamingContext,
New-R1NamingContextLabel,New-R1NamingContextContent,New-R1NamingContextContainerand
New-R1NamingContextLink. The two list commands follow the offset pagination of the API and return
every page. No total is reported by the API, so the end of a collection is recognised by a page
holding fewer nodes than were asked for. - Interception scripts:
Get-R1InterceptionScript,Import-R1InterceptionScript,
Remove-R1InterceptionScript,Get-R1InterceptionScriptLibrary,
Import-R1InterceptionScriptLibrary,Remove-R1InterceptionScriptLibrary,
Get-R1GlobalInterceptionScript/Set-R1GlobalInterceptionScript,
Test-R1InterceptionScriptCodeandNew-R1InterceptionScriptJar. The two upload commands take a
local file path and send it as multipart form data, which works on Windows PowerShell as well as
PowerShell 7. - Namespace utilities:
Test-R1LdapFilter,Test-R1ComputedAttributeName,
Test-R1JoinCondition,Get-R1JoinCondition,Get-R1DynamicGroupFormatand
Get-R1LinkedAttributeDefault. The three Test commands return a boolean; where the API also
reports why a value was rejected, that reason is written to the verbose stream. - Naming context special attributes, virtual tree and relationship tree:
Get-R1NamingContextSpecialAttribute/Set-R1NamingContextSpecialAttribute,
Get-R1NamingContextVirtualTreeProperty/Set-R1NamingContextVirtualTreePropertyand
Get-R1NamingContextRelationshipTree. - Namespace views:
Get-R1NamespaceViewandRemove-R1NamespaceView.
Directory schema
- Object classes:
Get-R1DirectoryObjectClass,New-R1DirectoryObjectClass,
Set-R1DirectoryObjectClass,Remove-R1DirectoryObjectClassandGet-R1DirectoryObjectClassParent. - Attributes:
Get-R1DirectoryAttribute,New-R1DirectoryAttribute,Set-R1DirectoryAttribute,
Remove-R1DirectoryAttributeandGet-R1DirectoryAttributeSyntax.Get-R1DirectoryAttribute
returns attribute names by default and full definitions when-includeAllPropertiesis specified,
following the form the API reports in its response. - Schema files:
Get-R1DirectorySchemaFile,Export-R1DirectorySchemaFile,
Import-R1DirectorySchemaFileandRemove-R1DirectorySchemaFile. Import takes either a local file,
sent as multipart form data, or the name of a file already on the server.
Data catalog
- Schemas:
Get-R1Schema,New-R1Schema,Set-R1Schema,Remove-R1Schema,
Get-R1SchemaFullObject/Set-R1SchemaFullObject,Get-R1SchemaAssociatedView,
New-R1GeneratedSchema,Get-R1PublishedSchemaandPublish-R1Schema.
Set-R1SchemaFullObjectupdates a schema together with its tables, fields and relationships in one
request.Publish-R1Schemareplaces the whole published set, so a name left out is unpublished. - Schema tables and relationships:
Get-R1SchemaTable,New-R1SchemaTable,Set-R1SchemaTable,
Remove-R1SchemaTable,Add-R1SchemaTable,Get-R1SchemaTableField/Set-R1SchemaTableField,
Get-R1SchemaRelationship,New-R1SchemaRelationship,New-R1RecursiveSchemaRelationship,
Set-R1SchemaRelationship,Remove-R1SchemaRelationship,Get-R1SchemaRelationshipTree,
Merge-R1SchemaObjectandNew-R1SchemaDerivedView.Add-R1SchemaTableappends tables by name;
Set-R1SchemaTableFieldreplaces the whole field collection. - Data sources:
Get-R1DataSource,New-R1DataSource,Set-R1DataSource,Remove-R1DataSource,
Copy-R1DataSource,Search-R1DataSource,Test-R1DataSourceConnection,Get-R1DataSourceObject,
Get-R1DataSourceTable,Get-R1DataSourceGroup,Add-R1DataSourceSchemaLink,
Remove-R1DataSourceSchemaLink,Import-R1DataSourceandExport-R1DataSource.
New-R1DataSourcehas a parameter set per kind of source: LDAP, database and custom.
The API does not return the bind password, soSet-R1DataSourcesends null rather than the empty
string it reads back, which the API documents as leaving the stored password alone. Supply
-passwordto change it, or-useExistingCredentialsto keep every stored password. - Data source types and plugins:
Get-R1DataSourceType,New-R1DataSourceType,
Set-R1DataSourceType,Remove-R1DataSourceType,Test-R1DataSourceType,
Get-R1DataSourcePlugin,Add-R1DataSourcePlugin,Remove-R1DataSourcePlugin,
Get-R1DataSourcePluginLibrary/Set-R1DataSourcePluginLibrary,Get-R1DataSourcePluginClass,
Import-R1DataSourceType,Get-R1DataSourceTypeImport,Complete-R1DataSourceTypeImport,
Remove-R1DataSourceTypeImport,Get-R1DataSourceTypeImportMeta,
New-R1DataSourceTypeImportMeta,Set-R1DataSourceTypeImportMeta,
Remove-R1DataSourceTypeImportMetaandExport-R1DataSourceType.
Types do not all carry the same properties, soSet-R1DataSourceTypebuilds its request from what
the API returned rather than from a fixed list. Uploading templates creates a session which is then
inspected, imported or discarded. - Libraries:
Get-R1Library,Search-R1Library,Import-R1Library,Set-R1Library,
Remove-R1Library,Clear-R1Library,Get-R1LibraryDependency/Set-R1LibraryDependencyand
Get-R1LibraryDependent. - JDBC drivers:
Get-R1JdbcDriverFile,Import-R1JdbcDriver,Remove-R1JdbcDriverand
Get-R1JdbcDriverLibrary/ `Set-...