Skip to content

Commit

Permalink
Release 0.1 (#1)
Browse files Browse the repository at this point in the history
* ✨ 🚀 Hello World

- Adds `New-IDSession`
- Adds `Close-IDSession`
- Adds `Get-IDCurrentUser`
Initial commits of commands to start & end sessions, and prove authentication.

* 📝💡Update Help

Adds comment based help for private functions, and external help based on markdown help files for public functions.

* 🍱 ADD Logo

Project Logo

* 💄🍱UPDATE Out-QRImage

Embellishes the generated html page which displays QR code used for authentication challenge.

* ADD Clear-IDUserSession

Initial commit of Clear-IDUserSession, which signs user out of all active sessions.
Adds helper functions `ConvertTo-QueryString`, `Get-EscapedString` & `Get-Parameter`.

* ✨ ♻️  Dev Update

Module Development:
- Adds `Get-IDWebSession` to enable retrieval of WebSession from module scope.
- Adds `Add-CustomType` helper for adding custom types to psobjects.
- Adds Format and Type files with methods for obtaining bearer tokens and psPAS Session Objects for authenticated session.
- Adds error check if unexpected html response is received.
- Updates documentation.

* 🔥 UPDATE IdCmd.ID.Session.Types.ps1xml

Removes  `TopsPASSessionObject` ScriptMethod.
Logic and capability incorporated into `psPAS` function `New-PASSession`.

* 💚 🤡 Dev Update

- Adds Tests
- Fixes ScriptAnalyzer warnings
- Forces Tls12 for Windows PowerShell
- Updates help

* ✅🧪DEV Update

- Adds Tests
- Other Test related updates

* 📝 📄 DEV Update

Adds license and other project doc updates.

* 🔖UPDATE License

* 👷💚 DEV Update

Adds appveyor build scripts

* 💡🚸 DEV Update

Adds Code of Conduct

* 💸DEV Update

Add github sponsors & templates

* 🍱Add Media

Add resized logo image

* 📝💡ADD about_IdentityCommand.help.txt

* 👷 💚 Config CodeCov

Adds CodeCov config

* 💚UPDATE test.ps1

* 💚UPDATE test.ps1

* 💚UPDATE test.ps1

Code coverage

* 💚⏪️UPDATE test.ps1

* 📝 ✏️ UPDATE README

* ⚰️🔥DEV Update

Removes redundant code in test files

* ⚰️🔥DEV Update

Removes redundant code in test files

* 📝 UPDATE Docs

platyps changes

* ✨ ➕ ADD Get-IDUser

initial commit of `Get-IDUser` which fetches details of cloud directory users.

* 🔠 UPDATE ID Parameter

Capitalise `ID` parameter for consistency.

* 💚 🔇 Update test.ps1

Mute codecov output in logs

* ✨ ➕ ADD Suspend-IDUserMFA

Adds initial commit of `Suspend-IDUserMFA` to exempt specified user from MFA for an amount of time

* Update Suspend-IDUserMFA.Tests.ps1

* 🚀 ADD Test-IDUserCloudLock

initial commit of `Test-IDUserCloudLock` to get the cloud lock status of a user

* Update Test-IDUserCloudLock.ps1

* 💚 ⚰️ DEV Update

Correct some comments
add a test

* ✨ 🚀 ADD Functions

Adds initial commits of new functions and post test fix/parameter name correction.

* 👷 💚 UPDATE tests

rewrite tests for URL checks

* ⏪ 🔥 UPDATE PULL_REQUEST_TEMPLATE

remove psPAS copy/paste reference

* 🔥➖ UPDATE Get-IDUser

consolidate get current user function into `Get-IDUser`

* ✨ 🚀 UPDATE Get-IDUser

Get details of tech support user added

* 🚚UPDATE Get-IDSession

Rename function from Get-IDWebSession

* ➕ ADD Get-IDSession.Tests

* Update install.ps1

* 📝💡 UPDATE Help

platyps doc update

* 🚚 ♻️ UPDATE Function Names

Removes `CloudLock` from noun portion of function names

* ✨ ➕ ADD Get-IDConnector

Initial commit of Get-IDConnector

* Update Get-IDConnector.md

* ➕ ✨ ♻️ ADD New-IDPlatformToken

Initial commit of `New-IDPlatformToken`.
Requests OAuth platform token for service user.

* 🧑‍💻 UPDATE Method

Standardises method name.
Renames method `GetBearerToken` to `GetToken` so the method name is standardised across `New-IDSession` & `New-IDPlatformToken`.
Updates documentation.

* 🔍️🔖UPDATE IdentityCommand.psd1

Add bits to module manifest

* Update CHANGELOG.md

* Update appveyor.yml
  • Loading branch information
pspete authored Aug 20, 2023
1 parent 47090be commit cb8c95f
Show file tree
Hide file tree
Showing 97 changed files with 8,937 additions and 11 deletions.
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: [pspete]
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Issue report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the issue**
A concise summary of the issue

**To Reproduce**
Steps to reproduce the behavior:
1.
2.
3.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots & Console Output**
If applicable, add screenshots and/or console output to help explain your problem.

```powershell
<--Console Output Goes Here-->
```

**Your Environment**
Include relevant details about your local and target environment

* PowerShell Version:
* Module Version:

**Additional context**
Add any other context about the problem here.
46 changes: 46 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<!-- A similar PR may already be submitted. Please search existing `Pull Requests` before creating one. -->
# Description
<!--
Please include a summary of the change and which issue is fixed & relevant motivation and context.
Put `Fixes #XXX` in your comment to link the issue that your PR fixes.
-->

Fixes #

## Type of change
<!--
Please select all relevant options:
-->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that makes existing functionality work differently)
- [ ] Documentation update
- [ ] Other (see description)

# How Has This Been Tested?
<!--
Please describe the tests that you ran to verify your changes.
Demonstrate the code is solid (i.e. The exact commands you ran and the output).
Provide instructions so tests can be reproduce.
Confirm if existing module tests require update/are updated/are passing
-->

- [ ] Pester test(s) update required
- [ ] Pester test(s) updated
- [ ] Pester test(s) passing

# Checklist:
<!--
See the `CONTRIBUTING` guide. _Ensure your code adheres to the project's PowerShell Styleguide_
Please select all relevant options:
-->
- [ ] My code follows the style guidelines of this project
- [ ] I have followed the contributing guidelines.
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new test failures or errors
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] I have opened & linked a related issue
- [ ] I have linked a related issue
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vscode/*
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Change Log
All notable changes to this project will be documented in this file.

## [0.1] - 2023-08-21

Initial module development prior to main release

### Added
- `New-IDSession` - Authenticate to CyberArk Identity, answering MFA challenges to start a new API session.
- `Close-IDSession` - Logoff CyberArk Identity API
- `Clear-IDUserSession` - Signs out user from all active sessions
- `Get-IDSession` - Get WebSession object from the module scope
- `Get-IDUser` - Fetch details of cloud directory users
- `Suspend-IDUserMFA` - Exempt a user from MFA
- `Test-IDUserCloudLock` - Checks if a user is cloud locked
- `Lock-IDUser` - Enable user cloud lock
- `Unlock-IDUser` - Disable user cloud locked
- `Get-IDTenant` - Get Tenant information
- `Get-IDTenantConfiguration` - Get tenant configuration data
- `Get-IDConnector` - Get connector health
- `New-IDPlatformToken` - Request OIDC token based on grant type

### Changed
- N/A

### Fixed
- N/A
46 changes: 46 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behaviour that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behaviour by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behaviour and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behaviour.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported by contacting the project team at hello@pspete.dev. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
48 changes: 48 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Contributing

All contributions, whether comments, code or otherwise are welcomed and appreciated.

## IdentityCommand Issues

If you find an error in `IdentityCommand`, or have a question relating to the module, [log an issue][new-issue].

## Contributing Code

- Fork the repo.
- Push your changes to your fork.
- Write [good commit messages][commit]
- use of emojis are encouraged.
- If no related issue exists already, open a [New Issue][new-issue] describing the problem being fixed or feature.
- [Update documentation](#updating-documentation) for the command as required.
- Submit a pull request to the [Dev Branch][dev-branch]
- Keep pull requests limited to a single issue
- Discussion, or necessary changes may be needed before merging the contribution.
- Link the pull request to the related issue

### PowerShell Styleguide

Use the standard *Verb*-*Noun* convention, and only use approved verbs.

[K&R (One True Brace Style variant)](https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/81) preferred.

## Updating Documentation

### External Help File

[Command Help][command-help] Markdown files are the source of truth for the `Get-Help` content of the module.

Changes to these markdown files must be reflected in the `Get-Help` content.

`platyPS` must be used to automatically generate the external help file:

```powershell
#From the module root directory, run:
import-module platyPS
New-ExternalHelp -Path .\docs\collections\_commands\ -OutputPath .\IdentityCommand\en-US\IdentityCommand-help.xml -Force
```

[commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[OTBS]: https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/81
[new-issue]: https://github.com/pspete/IdentityCommand/issues/new
[dev-branch]: https://github.com/pspete/IdentityCommand/tree/dev
[command-help]: https://github.com/pspete/IdentityCommand/tree/master/docs/collections/_commands
150 changes: 150 additions & 0 deletions IdentityCommand/IdentityCommand.psd1
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
#
# Module manifest for module 'IdentityCommand'
#
# Generated by: Pete Maan
#
# Generated on: 03/05/2023
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'IdentityCommand.psm1'

# Version number of this module.
ModuleVersion = '0.0.3'

# Supported PSEditions
# CompatiblePSEditions = @()

# ID used to uniquely identify this module
GUID = 'f6bb2bdf-0c53-443f-be07-3c25264a09b1'

# Author of this module
Author = 'Pete Maan'

# Company or vendor of this module
CompanyName = 'PSPETE'

# Copyright statement for this module
Copyright = '(c) Pete Maan. All rights reserved.'

# Description of the functionality provided by this module
Description = 'Enables user interaction with the API for the CyberArk Identity platform'

# Minimum version of the PowerShell engine required by this module
PowerShellVersion = '5.1'

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# ClrVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
TypesToProcess = @(
'xml\IdCmd.ID.Session.Types.ps1xml'
)

# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = @(
'xml\IdCmd.ID.Session.Format.ps1xml'
)

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @(
'New-IDSession',
'Close-IDSession',
'Clear-IDUserSession',
'Get-IDSession',
'Get-IDUser',
'Suspend-IDUserMFA',
'Test-IDUserCloudLock',
'Lock-IDUser',
'Unlock-IDUser',
'Get-IDTenant',
'Get-IDTenantConfiguration',
'Get-IDConnector',
'New-IDPlatformToken'
)

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
VariablesToExport = '*'

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

PSData = @{

# Tags applied to this module. These help with module discovery in online galleries.
Tags = @('CyberArk', 'CyberArk-API', 'CyberArk-Identity', 'REST', 'API')

# A URL to the license for this module.
LicenseUri = 'https://github.com/pspete/IdentityCommand/blob/main/LICENSE.md'

# A URL to the main website for this project.
ProjectUri = 'https://github.com/pspete/IdentityCommand/'

# A URL to an icon representing this module.
IconUri = 'https://github.com/pspete/IdentityCommand/blob/main/docs/media/images/IdentityCommand-Logo.png'

# ReleaseNotes of this module
ReleaseNotes = 'https://github.com/pspete/IdentityCommand/blob/main/CHANGELOG.md'

# Prerelease string of this module
# Prerelease = ''

# Flag to indicate whether the module requires explicit user acceptance for install/update/save
# RequireLicenseAcceptance = $false

# External dependent modules of this module
# ExternalModuleDependencies = @()

} # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}

Loading

0 comments on commit cb8c95f

Please sign in to comment.