Cross-Platform PowerShell framework that allows you to host REST APIs, Web Sites, and TCP/SMTP Servers
Badgerati on Issue-1046
#1046: minor tweak to version s… (compare)
Badgerati on Issue-1046
#1046: update packaging to refe… (compare)
get-module Pode -All -ListAvailable
Reset-PodeWebPage
in a Modal ?Date: 2021-10-12 16:16:01
at Invoke-PodeScriptBlock, C:\Users\sgagnon\Documents\PowerShell\Modules\Pode\2.4.2\Public\Utilities.ps1: line 662
at <ScriptBlock>, <No file>: line 107
Date: 2021-10-12 16:16:01
Level: Error
ThreadId: 3
Server: WH-DESK04
Category: System.Private.CoreLib
Message: Collection was modified; enumeration operation may not execute.
StackTrace: at System.Collections.Hashtable.HashtableEnumerator.MoveNext()
at System.Management.Automation.EnumerableOps.FlattenResults(Object o, List`1 result)
at System.Management.Automation.EnumerableOps.PropertyGetterWorker(CallSite`1 getMemberBinderSite, IEnumerator enumerator, ExecutionContext context, List`1 result)
at System.Management.Automation.EnumerableOps.PropertyGetter(PSGetMemberBinder binder, IEnumerator enumerator)
at Get-PodeRoute(Closure , FunctionContext )
-ArgumentList
, or something else?
$RoomList = Import-Csv -Path D:\Deployment\Rooms.csv -Delimiter ";" -Encoding UTF8
$Tabs = @( Foreach ( $Room in $RoomList )
{
New-PodeWebTab -Name $Room.Name -Icon $Room.Icon -Layouts @(
New-PodeWebCard -Content @(
New-PodeWebText -Value 'Here is some Normal text.'
)
)
} )
Add-PodeWebPage -Name 'Rooms' -Icon google-classroom -ArgumentList $Tabs -ScriptBlock {
param ($Tabs)
New-PodeWebTabs -Tabs @($Tabs)
}
-AccessGroup
or -AccessUser
in add-PodeWebPage
cmdlet. Is there anything equivalent for AAD? Thank you!
-AccessUsers
with AAD, though you might need to set -UsernameProperty
on Set-PodeWebLoginPage
to either "preferred_username" or "email" to force a username property, rather than just use Pode.Web's default. For groups, it breaks a little bit there at the moment. The access_token I think should be a JWT and contains claims like the groups, but will need parsing - in the next version of Pode its ConvertFrom-PodeJwt
should hopefully be moved to public :)
Hey @majkinetor :D, the lowest Pode's can go down to is a minute using cron; I've never stress tested it to extreme limits but I do have a health probe running on numerous web servers which runs a minutely schedule and it's not suffered any; plus another, which is a timer, that runs every 20secs, which does the bulk of CPU/IIS/Service checks, and also running fine. The most schedules I've seen was in a Pingdom-esque site someone built, which was running like 10-20 minutely schedules without issue.
As Pode triggers schedules, they're run in their own runspace, in a pool which allows up to a max of 10 to run at the same time (we could allow this to be customised), and then queues them if the pool is full. If you did have a schedule run every minute, and one of the times it triggered it did happen to run for 2mins, then Pode would trigger the schedule another 2 times during the running one.
I've been thinking about building a scheduler like this as well in Pode, so will be interesting to see how schedules/timers perform under load 🤔
Hi @Badgerati,
i have a problem with UserFile-Authentication. I used the following code:
Start-PodeServer {
Add-PodeEndpoint -Address localhost -Port 80 -Protocol Http
Enable-PodeSessionMiddleware -Duration (10*60) -Extend
New-PodeAuthScheme -Form | Add-PodeAuthUserFile -Name 'Login' -Groups @("Admin","Developer")
Use-PodewebTemplates -Title 'Login Example'
Set-PodeWebLoginPage -Authentication Login
}
and the following users.json in the root of the Script ( SHA256-Hash of Passw0rd):
[
{
"Name": "hans",
"Username": "hans",
"Email": "hans.wurst@demo.com",
"Password": "AB38EADAEB746599F2C1EE90F8267F31F467347462764A24D71AC1843EE77FE3",
"Groups": [
"Admin",
"Developer"
],
"Metadata": {
"Created": "2022-01-05"
}
}
]
But I always get Access denied. I also tried HMAC SHA256, but to no avail. Can you give me hint what is going south here?
Hey @hvoges,
How are you generating the SHA256 of "Passw0rd"? When I do it I get: qzjq2ut0ZZnywe6Q+CZ/MfRnNHRidkok1xrBhD7nf+M=
, using:
$password = 'Passw0rd'
$crypto = [System.Security.Cryptography.SHA256]::Create()
[System.Convert]::ToBase64String($crypto.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($password)))
Hey @Badgerati
Not really a Pode.Web issue but thought you might have a answer.
I've create a simple Web page using Pode.Web and it is working as expected. With FireFox, I then save the Web page as 'index.html' using the option 'Web Page Complete'.
When the index.html file is opened with a Firefox, it appears to not be finding the css files and just renders the raw html content only.
Any thoughts on how to get it to render in the same manner as when running the service.ps1?