Cross-Platform PowerShell framework that allows you to host REST APIs, Web Sites, and TCP/SMTP Servers
Badgerati on develop
fix for choco packer (compare)
Badgerati on gh-pages
v2.8.0 docs (compare)
Badgerati on v2.8.0
Badgerati on master
add workflows for auto-assignin… Merge pull request #1027 from B… helps if you add the action ver… and 71 more (compare)
Badgerati on develop
minor tweak to release notes (compare)
Badgerati on develop
add v2.8.0 release notes (compare)
Hey @cadayton, that should be about all that's needed. Few questions though, is $scriptPath
a relative or literal path? In the docs I used -Command
instead of -File
- any difference there if you change it?
On the last line you've got nssm status <name>
is that a typo here and meant to be nssm start <name>
?
Failing all of that, there's a change an error could be being thrown, so wrapping the whole server.ps1 in a try/catch could give some hints; something like:
try {
Start-PodeServer, etc, etc
}
catch {
$_.Exception.Message | Out-File C:/temp/pode_errors.txt
}
-Command
option and the try/catch combo too. Thanks again.
Import-Module Pode -Global
. So stumped as to why it is not being found.The term 'Start-PodeServer' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
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 🤔