Skip to content

Releases: pspete/psRadiantOne

v0.5.66

Choose a tag to compare

@pspete pspete released this 26 Sep 18:56

psRadiantOne v0.5.66

Added

  • Computed attribute commands: Get-R1ComputedAttribute, Add-R1ComputedAttribute,
    Set-R1ComputedAttribute and Remove-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 from Get-R1ComputedAttribute to the
    others.
  • New-R1ComputedAttributeExpression -value takes the values in the order the signature lists them
    and names each from the function's own parameters. -values keeps taking them keyed by name.

Changed

  • New-R1DirectoryEntry -attributes, Set-R1LogSetting -advancedProperties and
    Set-R1PipelineConnectorConfig -properties take 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, -delete and -replace take a hashtable keyed by attribute name,
    can be combined in one call, and bind from the pipeline by property name.
    -modifications still takes the modifications in the API's own shape.

Fixed

  • Get-R1Task -id and Get-R1TaskLog -id take taskId as an alias, so the launched task
    Initialize-R1Cache, Import-R1DirectoryLdif, Import-R1StoreData and Reset-R1StoreIndex
    return pipes straight into them. Previously the property bound to nothing and Get-R1Task
    returned every task.
  • New-R1RecursiveSchemaRelationship takes the -depth the API requires. Without it every call
    was refused with 'depth': must not be null.
  • Set-R1DirectoryManager sends 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-R1Task no longer sends the N_A sentinel Get-R1Task reports for executionInterval on a
    non-recurrent task back on the PUT, which the API rejected with Invalid time format: N_A.

v0.4.54

Choose a tag to compare

@pspete pspete released this 20 Sep 14:51

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-R1CacheRealTimeConnectorConfig and Get-R1CacheRealTimeConnectorType. A cache pipes to
      the other cache commands by its label.
    • LDAP and database proxies: Get-R1NamingContextLdapProxyBackend,
      Get-R1NamingContextLdapProxyAdvanced, Get-R1NamingContextMergedBackend and
      Get-R1NamingContextDbProxyProperty.
    • Content, label and link nodes: Get-R1NamingContextContentProperty,
      Get-R1NamingContextContentRdnAttribute, Get-R1NamingContextContentAdvanced,
      Get-R1NamingContextConfigurationParameter, Get-R1NamingContextLabelProperty,
      Get-R1NamingContextLinkProperty, Get-R1NamingContextLinkParameterTree,
      Get-R1NamingContextLinkParameterTreeAttribute and Get-R1NamingContextLinkParameterString.
    • The object builder: Get-R1PrimaryObject, Get-R1AvailablePrimaryObject,
      Get-R1SecondaryObject and Get-R1ComputedAttributeFunction.
    • Directory stores: Get-R1StoreProperty and Get-R1StoreBackup.
    • Get-R1NamingContextInterceptionScriptCode and Get-R1NamingContextReplication.
  • Format views listing caches, real time connectors and their types, computed attribute functions,
    content RDN attributes and link parameter attributes as tables.
  • Get-R1PasswordPolicy -Default returns the default password policy, which the API identifies by
    an empty policy name and -policyName could not ask for.
  • Commands which configure LDAP and database proxies:
    • Mount-R1NamingContextBackend mounts an LDAP directory or a database on a naming context node.
    • Set-R1NamingContextLdapProxyBackend and Set-R1NamingContextLdapProxyAdvanced update an
      LDAP proxy.
    • Add-R1NamingContextMergedBackend and Remove-R1NamingContextMergedBackend merge a second
      LDAP data source into an LDAP proxy, and remove it again.
    • Set-R1NamingContextInterceptionScriptCode replaces the interception script of a naming
      context.
  • Commands which configure label and content nodes and the object builder:
    • Set-R1NamingContextLabelProperty updates a label node.
    • Set-R1NamingContextContentProperty and Set-R1NamingContextContentAdvanced update how a
      content or container node names and presents its entries.
    • Set-R1SecondaryObject saves the object model of a primary object, and Get-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-R1ObjectExtension and New-R1JoinProfile build input sources, extensions and joins,
    New-R1ComputedAttributeExpression builds a computed attribute expression from a function,
    Test-R1ComputedAttributeExpression checks that one compiles, and
    Convert-R1ComputedAttributeExpression rewrites expressions for a renamed attribute. Each returns
    its result for saving with Set-R1SecondaryObject.
  • Commands which manage RadiantOne Directory stores: Set-R1StoreProperty, Reset-R1StoreIndex,
    Backup-R1Store, Export-R1StoreBackup, Restore-R1Store and Import-R1StoreBackup.
    Mount-R1NamingContextBackend mounts a store with -Store.
    Import-R1StoreData initializes a store from an LDIF file.
  • Commands which create and manage persistent caches: New-R1Cache, Set-R1CacheRefresh,
    Initialize-R1Cache, Set-R1CacheProperty and Import-R1Cache, and for real time refresh
    Set-R1CacheRealTimeConnectorConfig, Export-R1CacheRealTimeConnectorScript and
    Invoke-R1CacheRealTimeConnectorScript. Remove-R1Cache deletes a cache.
  • New-R1NamingContextInterceptionScript and Set-R1NamingContextInterceptionScript give a content
    node a new interception script, or one which already exists.

Fixed

  • A command issued before Connect-R1Session stops 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-R1NamingContextContent and New-R1NamingContextContainer always send
    isQuoteTableNames, isQuoteColumnNames and isRelatedObjectsOnly, as false unless
    specified. isRelatedObjectsOnly was previously left out unless given, and the API takes an
    absent value to be true.
  • Set-R1NamingContextContentAdvanced clears a where clause when given an empty string, sending it
    as the control panel does. It sent null, which the API ignores.
  • Test-R1Aci sends 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
    -aciString alone. New-R1Aci builds an ACI from individual permissions.
  • Set-R1Aci leaves 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 empty loaOperator, applyGroupDns and applyIps are left out
    too, and targetAttributes is sent as null rather than an empty list.
  • Set-R1PasswordPolicy creates 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-R1FIDUserRole sets the roles on the user. It used an endpoint the API marks deprecated,
    which a RadiantOne 8.5.3 deployment answers 404.
  • Get-R1PasswordPolicy -NewPolicy sends the policy name the endpoint requires, which it answered
    "Required parameter 'policyName' is not present." without.
  • Remove-R1DataSourcePlugin no 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

Choose a tag to compare

@pspete pspete released this 17 Sep 23:51

psRadiantOne v0.3.38

Added

  • Import-R1DataSource takes -overrideExisting, -performOpOnSchemas and -crossEnvironment, and
    Export-R1DataSource the last two. An import is refused where the data source already exists
    unless -overrideExisting is given. Only the options supplied are sent.
  • New-R1DataSource and Set-R1DataSource take -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-List renders the nested permission, log and counter blocks which previously printed as
    @{...}. Dates display in local time. Nothing is lost: Select-Object * and Format-List still
    reach every property, including a task's log and an interception script's contents.

Changed

  • Set-R1DataSource requires either -password or -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 -useExistingCredentials adding to it.
  • Get-R1FileManagerDirectory returns the directory entries rather than the object which wraps
    them, so they can be filtered and piped. Each carries uploadAllowed, the flag the API returns
    for the directory listed.
  • -Path is optional on Export-R1DataSource, Export-R1DataSourceType,
    Export-R1DirectorySchemaFile, Export-R1File and Save-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-R1DataSourcePlugin returns the staged import, which carries the id
    Complete-R1DataSourceTypeImport and Remove-R1DataSourceTypeImport act on.
  • Set-R1DataSource keeps the stored password of an LDAP or database data source, which sending
    null had cleared, and leaves a null groupId or kerberosProfile as the API returned it.
  • Set-R1DataSource, New-R1DataSource, Set-R1DataSourceType and Set-R1SchemaFullObject no
    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-R1SchemaFullObject sends the schema's objects back, which it had left out of the update.

v0.2.29

Choose a tag to compare

@pspete pspete released this 15 Sep 21:16

psRadiantOne v0.2.29

v0.1.3

Choose a tag to compare

@pspete pspete released this 13 Sep 22:00

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-R1AuthToken and
    Reset-R1Password. -BaseURI takes the API endpoint address, which on a cloud tenant is the
    control panel address with /api appended; both are listed in the EOC Application Endpoints panel.
    An expired password is surfaced by Connect-R1Session as the reset information the API returns,
    whose resetToken drives Reset-R1Password.
  • Disconnect-R1Session takes -Force to clear the local session where the token could not be
    revoked. Revoking requires SCOPE_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-R1AdapToken and Test-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-R1FIDUser and Set-R1FIDUserRole.
    Get-R1FIDUser follows 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-R1AciLocation and Test-R1Aci.
  • Attribute encryption: Get-R1AttributeEncryption / Set-R1AttributeEncryption,
    Get-R1AttributeEncryptionKmsSetting / Set-R1AttributeEncryptionKmsSetting and
    Update-R1AttributeEncryptionKey.
  • Client certificate truststore: Get-R1TruststoreCertificate, Add-R1TruststoreCertificate,
    Remove-R1TruststoreCertificate and Export-R1TruststoreCertificate.
  • External token validators: Get-R1TokenValidator, New-R1TokenValidator, Set-R1TokenValidator
    and Remove-R1TokenValidator.
  • OIDC providers: Get-R1OidcProvider, New-R1OidcProvider, Set-R1OidcProvider,
    Remove-R1OidcProvider, Get-R1OidcLoginInfo, Get-R1OidcDiscoveryEndpoint,
    Get-R1OidcDiscoveryInfo and Get-R1OidcScopesClaim.
  • Audit logging: Get-R1AuditLogSetting / Set-R1AuditLogSetting and Export-R1AuditLog.
  • Password policies: Get-R1PasswordPolicy, Set-R1PasswordPolicy, Remove-R1PasswordPolicy,
    Get-R1PasswordDictionary, Add-R1PasswordDictionaryWord, Remove-R1PasswordDictionaryWord,
    Get-R1PasswordEncryption and Test-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-R1CustomLimit and Get-/Set-R1Feature.
  • Log settings: Get-R1LogSetting / Set-R1LogSetting, addressing a component, a data source or a
    plugin, and Get-R1LogTimezone.
  • Identity observability: Get-/Set-R1PipelineConnectorConfig, Get-R1PipelineConnectorType,
    Reset-R1PipelineConnector, Suspend-R1Pipeline, Resume-R1Pipeline and
    Invoke-R1PipelineConnectorScript.
  • Entry statistics: Get-R1Operation, New-R1Operation, Stop-R1Operation, Resume-R1Operation
    and Get-R1Statistic.
  • Licensing: Get-R1License, Set-R1License and Read-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-R1GlobalSpecialAttribute and Get-R1GlobalDynamicGroup.
  • Naming contexts: Get-R1NamingContext, Get-R1NamingContextChild, New-R1NamingContext,
    Remove-R1NamingContext, Enable-R1NamingContext / Disable-R1NamingContext,
    New-R1NamingContextLabel, New-R1NamingContextContent, New-R1NamingContextContainer and
    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-R1InterceptionScriptCode and New-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-R1DynamicGroupFormat and
    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-R1NamingContextVirtualTreeProperty and
    Get-R1NamingContextRelationshipTree.
  • Namespace views: Get-R1NamespaceView and Remove-R1NamespaceView.

Directory schema

  • Object classes: Get-R1DirectoryObjectClass, New-R1DirectoryObjectClass,
    Set-R1DirectoryObjectClass, Remove-R1DirectoryObjectClass and Get-R1DirectoryObjectClassParent.
  • Attributes: Get-R1DirectoryAttribute, New-R1DirectoryAttribute, Set-R1DirectoryAttribute,
    Remove-R1DirectoryAttribute and Get-R1DirectoryAttributeSyntax. Get-R1DirectoryAttribute
    returns attribute names by default and full definitions when -includeAllProperties is specified,
    following the form the API reports in its response.
  • Schema files: Get-R1DirectorySchemaFile, Export-R1DirectorySchemaFile,
    Import-R1DirectorySchemaFile and Remove-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-R1PublishedSchema and Publish-R1Schema.
    Set-R1SchemaFullObject updates a schema together with its tables, fields and relationships in one
    request. Publish-R1Schema replaces 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-R1SchemaObject and New-R1SchemaDerivedView. Add-R1SchemaTable appends tables by name;
    Set-R1SchemaTableField replaces 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-R1DataSource and Export-R1DataSource.
    New-R1DataSource has a parameter set per kind of source: LDAP, database and custom.
    The API does not return the bind password, so Set-R1DataSource sends null rather than the empty
    string it reads back, which the API documents as leaving the stored password alone. Supply
    -password to change it, or -useExistingCredentials to 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-R1DataSourceTypeImportMeta and Export-R1DataSourceType.
    Types do not all carry the same properties, so Set-R1DataSourceType builds 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-R1LibraryDependency and
    Get-R1LibraryDependent.
  • JDBC drivers: Get-R1JdbcDriverFile, Import-R1JdbcDriver, Remove-R1JdbcDriver and
    Get-R1JdbcDriverLibrary / `Set-...
Read more