Skip to content

Commit

Permalink
Merge pull request #33 from AsBuiltReport/dev
Browse files Browse the repository at this point in the history
v0.3.2 public release
  • Loading branch information
rebelinux authored May 25, 2024
2 parents 394f0f5 + d0ea9a1 commit fe5dd00
Show file tree
Hide file tree
Showing 22 changed files with 555 additions and 257 deletions.
12 changes: 11 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ labels: ["bug"]
assignees:
- rebelinux
body:
- type: dropdown
id: vbrversion
attributes:
label: Veeam Backup for Microsoft 365 version
options:
- 7
- 6
- vNext
validations:
required: true
- type: textarea
id: bug-description
attributes:
Expand Down Expand Up @@ -95,4 +105,4 @@ body:
required: true
- label: >-
I have checked for previously opened & closed [issues](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues) before submitting this bug report.
required: true
required: true
12 changes: 11 additions & 1 deletion .github/ISSUE_TEMPLATE/change_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ labels: ["change request"]
assignees:
- rebelinux
body:
- type: dropdown
id: vbrversion
attributes:
label: Veeam Backup for Microsoft 365 version
options:
- 7
- 6
- vNext
validations:
required: true
- type: textarea
id: description
attributes:
Expand Down Expand Up @@ -31,4 +41,4 @@ body:
required: true
- label: >-
I have checked for previously opened & closed [issues](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues) before submitting this change request.
required: true
required: true
2 changes: 1 addition & 1 deletion .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
needs: publish-to-gallery
runs-on: ubuntu-latest
steps:
- uses: Eomm/why-don-t-you-tweet@v1
- uses: rebelinux/why-don-t-you-tweet@v1.2.0
# We don't want to tweet if the repository is not a public one
if: ${{ !github.event.repository.private }}
with:
Expand Down
4 changes: 2 additions & 2 deletions AsBuiltReport.Veeam.VB365.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
RootModule = 'AsBuiltReport.Veeam.VB365.psm1'

# Version number of this module.
ModuleVersion = '0.3.1'
ModuleVersion = '0.3.2'

# Supported PSEditions
# CompatiblePSEditions = @()
Expand Down Expand Up @@ -63,7 +63,7 @@
},
@{
ModuleName = 'Diagrammer.Core';
ModuleVersion = '0.1.9'
ModuleVersion = '0.2.1'
}
)

Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.2] - 2024-05-25

### Changed

- Move 'Licensed Users' section to InfoLevel 2

### Fixed

- Fix [#23](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/23)
- Fix [#24](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/24)
- Fix [#25](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/25)
- Fix [#27](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/27)
- Fix [#28](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/28)
- Fix [#29](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/29)
- Fix [#30](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/30)
- Fix [#31](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/issues/31)

## [0.3.1] - 2024-03-30

### Added
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for m

Sample Veeam VB365 As Built report HTML file: [Sample Veeam VB365 As Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/dev/Samples/Sample%20Veeam%20VB365%20As%20Built%20Report.html)

Sample Veeam VB365 As Built report PDF file: [Sample Veeam VB365 As Built Report.pdf](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/raw/dev/Samples/Sample%20Veeam%20VB365%20As%20Built%20Report.pdf)
Sample Veeam VB365 As Built report diagram file: [Sample Veeam VB365 As Built Report Diagram](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VB365/raw/dev/Samples/AsBuiltReport.Veeam.VB365.png)

![Sample Diagram](Samples/AsBuiltReport.Veeam.VB365.png)

# :beginner: Getting Started
Below are the instructions on how to install, configure and generate a Veeam VB365 As Built report.
Expand Down Expand Up @@ -157,7 +159,7 @@ The table below outlines the default and maximum **InfoLevel** settings for each
| Sub-Schema | Default Setting | Maximum Setting |
| --------------- | :-------------: | :-------------: |
| ServerConfig | 1 | 1 |
| License | 1 | 1 |
| License | 1 | 2 |
| Proxy | 1 | 2 |
| Repository | 1 | 2 |
| Organization | 1 | 2 |
Expand Down
Binary file added Samples/AsBuiltReport.Veeam.VB365.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
455 changes: 265 additions & 190 deletions Samples/Sample Veeam VB365 As Built Report.html

Large diffs are not rendered by default.

36 changes: 30 additions & 6 deletions Src/Private/Get-AbrVb365BackupRepository.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ function Get-AbrVB365BackupRepository {
.DESCRIPTION
Documents the configuration of Veeam VB365 in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.3.1
Version: 0.3.2
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -72,14 +72,13 @@ function Get-AbrVB365BackupRepository {
$RepositoryInfo += [PSCustomObject]$InObj
}

if ($HealthCheck.Infrastructure.Repository) {
$RepositoryInfo | Where-Object { $_.'Is Outdated' -eq 'Yes' } | Set-Style -Style Warning -Property 'Is Outdated'
$RepositoryInfo | Where-Object { $_.'Object Storage Repository' -ne 'Disabled' -and $_.'Object Storage Encryption Key' -eq 'Disabled' } | Set-Style -Style Warning -Property 'Object Storage Encryption Key'
}

if ($InfoLevel.Infrastructure.Repository -ge 2) {
Paragraph "The following sections detail the configuration of the backup repository within $VeeamBackupServer backup server."
foreach ($Repository in $RepositoryInfo) {
if ($HealthCheck.Infrastructure.Repository) {
$Repository | Where-Object { $_.'Is Outdated' -eq 'Yes' } | Set-Style -Style Warning -Property 'Is Outdated'
$Repository | Where-Object { $_.'Object Storage Repository' -ne 'Disabled' -and $_.'Object Storage Encryption Key' -eq 'Disabled' } | Set-Style -Style Warning -Property 'Object Storage Encryption Key'
}
Section -ExcludeFromTOC -Style NOTOCHeading4 "$($Repository.Name)" {
$TableParams = @{
Name = "Repository - $($Repository.Name)"
Expand All @@ -90,9 +89,23 @@ function Get-AbrVB365BackupRepository {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$Repository | Table @TableParams
if ($HealthCheck.Infrastructure.Repository) {
if ($Repository | Where-Object { $_.'Object Storage Repository' -ne 'Disabled' -and $_.'Object Storage Encryption Key' -eq 'Disabled' }) {
Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Text "Backups data is a high potential source of vulnerability. To secure data stored in object repositories, use Veeam's inbuilt encryption to protect data in backups."
}
BlankLine
}
}
}
}
} else {
if ($HealthCheck.Infrastructure.Repository) {
$RepositoryInfo | Where-Object { $_.'Object Storage Repository' -ne 'Disabled' -and $_.'Object Storage Encryption Key' -eq 'Disabled' } | Set-Style -Style Warning
}
Paragraph "The following table summarizes the configuration of the backup repository within within the $VeeamBackupServer backup server."
BlankLine
$TableParams = @{
Expand All @@ -105,6 +118,17 @@ function Get-AbrVB365BackupRepository {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$RepositoryInfo | Table @TableParams
if ($HealthCheck.Infrastructure.Repository) {
if ($RepositoryInfo | Where-Object { $_.'Object Storage Repository' -ne 'Disabled' -and $_.'Object Storage Encryption Key' -eq 'Disabled' }) {
Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Text "Found a Object Storage repository without encryption enabled. Backups data is a high potential source of vulnerability. To secure data stored in object repositories, use Veeam's inbuilt encryption to protect data in backups."
}
BlankLine
}
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Src/Private/Get-AbrVb365EncryptionKey.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function Get-AbrVB365EncryptionKey {
Name = "Encryption Keys - $VeeamBackupServer"
List = $false
Columns = 'Description', 'Last Modified'
ColumnWidths = 40, 60
ColumnWidths = 60, 40
}
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
Expand Down
35 changes: 28 additions & 7 deletions Src/Private/Get-AbrVb365ObjectRepository.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ function Get-AbrVB365ObjectRepository {
.DESCRIPTION
Documents the configuration of Veeam VB365 in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.3.1
Version: 0.3.2
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -41,20 +41,20 @@ function Get-AbrVB365ObjectRepository {
'Is Long Term' = ConvertTo-TextYN $ObjectRepository.IsLongTerm
'Is Secondary' = ConvertTo-TextYN $ObjectRepository.IsSecondary
'Use Archiver Appliance' = ConvertTo-TextYN $ObjectRepository.UseArchiverAppliance
'Enable Immutability' = ConvertTo-TextYN $ObjectRepository.EnableImmutability
'Immutability Enabled' = ConvertTo-TextYN $ObjectRepository.EnableImmutability
'Description' = $ObjectRepository.Description

}
$ObjectRepositoryInfo += [PSCustomObject]$InObj
}

if ($HealthCheck.Infrastructure.Repository) {
$ObjectRepositoryInfo | Where-Object { $_.'Is Outdated' -eq 'Yes' } | Set-Style -Style Warning -Property 'Is Outdated'
}

if ($InfoLevel.Infrastructure.Repository -ge 2) {
Paragraph "The following sections detail the configuration of the object repository within $VeeamBackupServer backup server."
foreach ($ObjectRepository in $ObjectRepositoryInfo) {
if ($HealthCheck.Infrastructure.Repository) {
$ObjectRepository | Where-Object { $_.'Is Outdated' -eq 'Yes' } | Set-Style -Style Warning -Property 'Is Outdated'
$ObjectRepository | Where-Object { $_.'Immutability Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Immutability Enabled'
}
Section -ExcludeFromTOC -Style NOTOCHeading4 "$($ObjectRepository.Name)" {
$TableParams = @{
Name = "Object Repository - $($ObjectRepository.Name)"
Expand All @@ -65,21 +65,42 @@ function Get-AbrVB365ObjectRepository {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$ObjectRepository | Table @TableParams
if (($HealthCheck.Infrastructure.Repository) -and ($ObjectRepository | Where-Object { $_.'Immutability Enabled' -eq 'No' })) {
Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Text "Veeam recommend to implement Immutability where it is supported. It,s done for increased security: immutability protects your data from loss as a result of attacks, malware activity or any other injurious actions."
}
BlankLine
}
}
}
} else {
if ($HealthCheck.Infrastructure.Repository) {
$ObjectRepositoryInfo | Where-Object { $_.'Immutability Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Immutability Enabled'
}
Paragraph "The following table summarizes the configuration of the object repository within within the $VeeamBackupServer backup server."
BlankLine
$TableParams = @{
Name = "Object Repositories - $VeeamBackupServer"
List = $false
Columns = 'Name', 'Type', 'Size Limit', 'Used Space', 'Free Space'
Columns = 'Name', 'Type', 'Used Space', 'Free Space', 'Immutability Enabled'
ColumnWidths = 28, 27, 15, 15, 15
}
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$ObjectRepositoryInfo | Table @TableParams
if (($HealthCheck.Infrastructure.Repository) -and ($ObjectRepositoryInfo | Where-Object { $_.'Immutability Enabled' -eq 'No' })) {
Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Text "Veeam recommend to implement Immutability where it is supported. It,s done for increased security: immutability protects your data from loss as a result of attacks, malware activity or any other injurious actions."
}
BlankLine
}
}
}
}
Expand Down
6 changes: 5 additions & 1 deletion Src/Private/Get-AbrVb365OrganizationEXConnSetting.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ function Get-AbrVb365OrganizationEXConnSetting {
.DESCRIPTION
Documents the configuration of Veeam VB365 in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.2.1
Version: 0.3.2
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -49,6 +49,10 @@ function Get-AbrVb365OrganizationEXConnSetting {
$OrganizationInfo += [PSCustomObject]$InObj
}

if ($HealthCheck.Infrastructure.Organization) {
$OrganizationInfo | Where-Object { $_.'Authentication Type' -ne 'ApplicationOnly' } | Set-Style -Style Warning -Property 'Authentication Type'
}

foreach ($Org in $OrganizationInfo) {
Section -ExcludeFromTOC -Style NOTOCHeading5 "$($Org.'Application Id')" {
$TableParams = @{
Expand Down
6 changes: 5 additions & 1 deletion Src/Private/Get-AbrVb365OrganizationSPConnSetting.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ function Get-AbrVb365OrganizationSPConnSetting {
.DESCRIPTION
Documents the configuration of Veeam VB365 in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.2.1
Version: 0.3.2
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -49,6 +49,10 @@ function Get-AbrVb365OrganizationSPConnSetting {
$OrganizationInfo += [PSCustomObject]$InObj
}

if ($HealthCheck.Infrastructure.Organization) {
$OrganizationInfo | Where-Object { $_.'Authentication Type' -ne 'ApplicationOnly' } | Set-Style -Style Warning -Property 'Authentication Type'
}

foreach ($Org in $OrganizationInfo) {
Section -ExcludeFromTOC -Style NOTOCHeading5 "$($Org.'Application Id')" {
$TableParams = @{
Expand Down
Loading

0 comments on commit fe5dd00

Please sign in to comment.