Pode

Pode is a Cross-Platform PowerShell web framework for creating REST APIs, Web Sites, and TCP/SMTP servers

OTHER License

Stars
780
Committers
25

Bot releases are visible (Hide)

Pode - Pode v2.10.1 Latest Release

Published by Badgerati 5 months ago

Bugs

  • #1300: Adds a Test-Path check when loading modules
  • #1300: Fixes a stack overflow exception when using: scoped variables are remapped
  • #1301: Adds missing Name property to WindowsAd, WindowsLocal, and UserFile authentications
  • #1303: Handle SecretStore vaults better with inbuilt defaults
  • #1303: Resolve a threading issue with secrets

Documentation

  • #1290: Fixes a typo in Tasks.md (thanks @fatherofinvention!)
  • #1302: Alter Pode views documentation page to use Get-LocalUser instead of dummy function
  • #1303: Write documentation for SecretStore vaults
  • #1313: Adds documentation for CIM modules, and needing to import them first

Packaging

  • #1304: Bumps InvokeBuild to 5.11.1
  • #1304: Ported a more concise and stable version of the PowerShell installer for workflows
  • #1305: Only run CI workflows when required
  • #1312: Adds auto release notes generator to build file
  • #1315: Fixes docker builds on GitHub runners
  • #1315: Removes support for PS7.3 GitHub runners, and NET7 now that they are EOL
  • #1316: Split the license file up, add missing ones, and add the dependency licenses to be released with Pode

Dependencies

  • #1309: Bump the version of mkdocs to 1.6.0
  • #1309: Bump the version of mkdocs-material theme to 9.5.23
  • #1310: Have Dependabot ensure that GitHub actions are up-to-date
  • #1311: Bump actions/add-to-project from 0.3.0 to 1.0.1
  • #1314: Bump Dockerfiles to PowerShell 7.4

Checksum: 55456B595D0DDFD92ABB1C34209FCB4F68E2052940ABAA6A5D81C1C870D8811E

Pode - Pode v2.10.0

Published by Badgerati 6 months ago

Checksum: 93FCF0ED0EFABF1D848AE37CA63934178901ED76B61F37F955D55669FB7F70B8

Features

  • #1197: Adds support for inbuilt caching of values
  • #1238: Adds support for creating custom scoped variables
  • #1256: Adds support for converting HTTP connections into SSE connections
  • #1266: Adds support for a File Browsing page on static routes (thanks @mdaneri!)

Enhancements

  • #1136: Adds full support for OpenAPI v3.0.3 and v3.1 (huge thanks to @mdaneri! 🎉)
  • #1239: Adds the missing HTTP 425 response status code
  • #1242: Adds support for enabling "session per browser Tab"
  • #1265: Adds support for customising the default folder paths, such as /views (thanks @mdaneri!)
  • #1267: Adds support for -DualMode on Add-PodeEndpoint, allowing endpoints to listen on IPv4 and IPv6
  • #1276: Adds supported and EOL PowerShell checks during server start (thanks @mdaneri!)

Bugs

  • #1246: Fixes static route ordering, and redirecting to default file
  • #1258: Fixes a script modification issue when using scriptblocks with Add-PodePage (thanks @mdaneri!)
  • #1279: Fixes a scoping issue when using Add-PodeRouteGroup
  • #1281: Removes an erroneous break command when broadcasting messages to websockets
  • #1138: Fixes the status code for expired JWT, from 400 to 401 (thanks @mdaneri!)

Documentation

  • #1232: Updates Sessions page to fix Redis example (thanks @Szeraax!)
  • #1234: Updates Tasks page to explain Task concurrency and Argument passing (thanks @Szeraax!)
  • #1276: Adds supported PowerShell documentation (thanks @mdaneri!)
  • #1277: Fix for missing merged authentication documentation
  • #1282: Adds documentation describing how to debug Pode

Packaging

  • #1261: Add support to the build script for Linux and Mac (thanks @mdaneri!)
  • #1262: Migrates tests to Pester 5.5.0 (thanks @mdaneri!)
  • #1269: Adds PSScriptAnalyzerSettings to run during CI pipelines (thanks @mdaneri!)
  • #1264, #1273: Adds CI pipelines per supported PowerShell version (thanks @mdaneri!)
  • #1276: Adds .NET8 support (thanks @mdaneri!)
  • #1284: Adds additional unit tests to verify PowerShell syntax and structure
  • #1286: General tidy-up and release prep
Pode - Pode v2.9.0

Published by Badgerati 12 months ago

Checksum: 7982A2267E12D9FF8F53C4C1732A4F5A01FA789470EA5DF940A8641D08EDEF35

Features

  • #992: Introduces new Authorisation middleware support

Enhancements

  • #588: Adds support for merging Authentication methods into a new Authentication method
  • #1082, #1107: Adds a new "Running" event type, which will be triggered once all Runspaces have started
  • #1101: Adds a new -SslProtocol parameter to Add-PodeEndpoint, to allow setting SSL Protocols per endpoint
  • #1106: Adds two new Security functions to control the hiding/showing of the Server header in responses
  • #1142: The Test-PodeJwt function is now public (thanks @alan-null!)
  • #1163: Adds a new "Session" authentication method, useful if you need multiple authentication methods and the user can choose one

Bugs

  • #1030: Fixes an issue with some Authentication methods when -AsCredential was supplied on the scheme
  • #1081: Don't attempt to parse the query string if there is no query string supplied
  • #1083: Fixes a time-zone issue when verifying JWT "exp" and "nbf" properties (thanks @avin3sh!)
  • #1087: Fixes an SMTP body parsing issue when multiple headers are in the request
  • #1093: Allow greater JSON depths to be used when saving/restoring State (thanks @plk!)
  • #1125: Fixes an issue where Verbs weren't being cleared down appropriately on server restart
  • #1130: When request logging is enabled, and an authenticated user is available, the username will now be used and not "-"
  • #1137: Fixes the loading of AutoImport configuration - it was being ignored!

Documentation

  • #1078: Adds release dates to the releases notes page
  • #1099: Adds a reference to the "Protected Users" group in the AD Authentication page
  • #1115, #1116: Fixes incorrect ports in Example scripts (thanks @ArieHein!)
  • #1117, #1118, #1119: Fixes markdown syntax in pages (thanks @ArieHein!)
  • #1123: Adds reference link about using the SecretManagement module in automation scenarios
  • #1133: Fixes broken links to functions (thanks @Chris--A!)
  • #1141: Updates the IIS page to reference the use of Maximum Worker Processes, and Sessions being stored in-memory

Packaging

  • #1169: Adds a .vscode workspace settings file, with PowerShell code formatting settings
  • #1170: Bumps the Alpine version to 3.17, and Ubuntu to 22.04 in Dockerfiles
  • #1171: Bumps the versions of MkDocs and the Material theme
Pode - Pode v2.8.0

Published by Badgerati over 1 year ago

Checksum: EE4C873F72FC3C7F846FB0D80624A92438C89A43236421A49CCBEBED1240E3D9

Features

  • #980: Adds support for Secret Management, either via the SecretManagement module or using custom logic
  • #1063: Adds support for File Watchers, allowing you to run logic on file events
  • #1067: Adds support for Mutexes and Semaphores

Enhancements

  • #647: Adds a new helper function, New-PodeCron, to help with creating cron expressions for schedules
  • #964: Adds a new -IfExists parameter for Routes, letting you now specify if Pode should overwrite a Route if it already exists
  • #996: Multiple -Method values can now be passed for Routes
  • #1036: Adds functions to reset and retrieve the current session's expiry
  • #1071: Adds support for the CONNECT HTTP method

Bugs

  • #1028: Fixes the QUIT command on the SMTP server to also return a "221 OK" response
  • #1029: Resolves the "A drive with this name already exists" message
  • #1041: Fixes a parsing error when sending form data from Invoke-WebRequest
  • #1044: Fixes a duplicate key error when using the multiple attribute on HTML file inputs
  • #1046: Fixes the version of Pode within its runspaces, so it's no "0.0"
  • #1065: Fixes query string parsing when key is null (thanks @ili101!)

Documentation

  • #1009: Adds clarification around password formats when using a file to store user authentication details (thanks @fatherofinvention!)
  • #1054: Fixes rendering issue with Write-PodeHtmlResponse example
  • #1056: Fixes typo in logging documentation (thanks @fatherofinvention!)

Packaging

  • #1050: Bump Dockerfiles to use PS7.3
  • #1051: Bump the PodeListener to use .NET7
  • #1052: Bump version of mkdocs and material theme
Pode - Pode v2.7.2

Published by Badgerati about 2 years ago

Checksum: 3AF04B3DB6C4B52C4CB1CDEDB68F993A86E32949D77A2B63DF9DBF0B25FC2FB7

Enhancements

  • #1002: Adds a -KeepCredential switch for Add-PodeAuthWindowsAd (thanks @TheBakaBandit!)

Bugs

  • #988: Add missing -ListenerType parameter description for Start-PodeServer
  • #1001: Fix no Verbs being defined from crashing the server on restart

Documentation

  • #975: Update the code sample image in the README to an SVG (thanks @pcgeek86!)
  • #987: Adds the beginnings of a Roadmap and Project board
  • #993: Improves documentation for the WebEvent variable
Pode - Pode v2.7.1

Published by Badgerati about 2 years ago

Checksum: 48E8349BC9EABB46CD448129390A3ECA6691EE7DEDF03C63F57ECE7CFC418640

Bugs

  • #990: Fix SMTP attachment name parsing, when the name contains a space

Security

  • #997: Fix an XSS exploit on the default error pages
Pode - Pode v2.7.0

Published by Badgerati over 2 years ago

Checksum: 2E8DC36A5C6342E3479AEC3C2C3358924FEB78DF5EE058C3FD6B36EE4F05276D

Features

  • #895: Add support for server to be able to connect to external WebSockets
  • #902: New TCP server, listener, and endpoints; plus Verbs support
  • #976: Add support for grouping Routes

Enhancements

  • #901: Enable support for multiple SMTP endpoints, and certificates
  • #954: Add anonymous route access support, when authentication is enabled on a route
  • #960: Add RSET and NOOP SMTP commands
  • #981: Add switch for AccessControl to create global Options route
  • #982: Add * level for errors to enable everything

Bugs

  • #956: Fix for importing functionss with inline parameters
  • #957: Fix for some OpenAPI properties being dropped
  • #958: Some SMTP attachment boundaries can include double quotes
  • #965: Fix for importing ps1 files
  • #974: Add Position=0 to most response write functions

Documentation

  • #978: Icon and Donation link updates

Packaging

  • #984: Bump Docker images to use PS7.2.4
Pode - Pode v2.6.2

Published by Badgerati over 2 years ago

Checksum: 8894910B0EA18B239EC90FB7C82C0FEB516D1F067D73A6F80DE60EA262AE9CD0

Bugs

  • #948: Hotfix to resolve issue with importing ActiveDirectory module into runspaces
Pode - Pode v2.6.1

Published by Badgerati over 2 years ago

Checksum: 5D7B017F6FC0560F03C93C00C35A6548CD8A1AE92F790F7C2BDBBA5370CB2851

Bugs

  • #915: Fix regex issue preventing Pode listening on IPv6 addresses
  • #934: Fix relative path issue when using -FilePath on Start-PodeServer

Performance

  • #913: Add new -DirectGroups/-ADModule switch for WindowsAD authentication

Documentation

  • #940: Add a list of available options for server.psd1 files to configuration docs page
Pode - Pode v2.6.0

Published by Badgerati over 2 years ago

Checksum: 007D0EECB869F88D4F681076CF93D3F1593687287FE255902538333F9627ACFD

Features

  • #893: Add async/sync Task support
  • #894: Add helper support and middleware for security HTTP headers

Enhancements

  • #867: Add support for PKCE on OAuth2 authentication
  • #868: Add support for building OAuth2 schemes from OpenID Connect Discovery URLs
  • #869: Update support to also get the count of currently processing requests
  • #891: Add -ArgumentList to Invoke-PodeTimer and Invoke-PodeSchedule

Bugs

  • #905: Fix for route creation and matching order
  • #917: Fix for OpenAPI definition not being generated correctly
  • #932: Dispose of completed Schedule runspaces/pipelines

Performance

  • #896: Open and close RunspacePools in parallel - speeds server start-up and close
  • #910: Only create RunspacePools when they're needed

Packaging

  • #871: Compile the PodeListener into netstandard2.0, and now net6.0
Pode - Pode v2.5.2

Published by Badgerati almost 3 years ago

Checksum: FD247CA5BE09A31A474F014020822C3BFDABA367323E50A9AB2AF74B179EE4CC

Bugs

  • #892: Fixes a bug with importing modules, where the wrong file was being used
Pode - Pode v2.5.1

Published by Badgerati almost 3 years ago

Checksum: 9E9636CCD038494FB1B05D8A50112759C7DE7B36D956B8F2D8EAB064349246EB

Bugs

  • #877: Fix for ConvertFrom-PodeJwt expecting string not byte[]
  • #879: Fix for retrieving Client Certificates from IIS
  • #883: Fix for view engine extensions not being ToLower'd

Documentation

  • #805: Add announcement bar to docs, referencing official docs on GitHub

Packaging

  • #873: Bump PowerShell to v7.2.1 in Docker images
  • #881: Bump mkdocs to v1.2.3, and Material theme to v8.1.2
Pode - Pode v2.5.0

Published by Badgerati almost 3 years ago

Checksum: F3737F3F2A906B5A0AD06C08D23EEDF6002B65D08ACD8BACBF2DED8B191281A2

Enhancements

  • #771: Adds more Use-PodeXYZ functions for auto-loading scripts
  • #813: Adds new Out-PodeVariable to set variables on the Host when the server stops
  • #817: Adds LastTriggerTime property for Schedules and Timers
  • #825: Adds new Crash server event hook
  • #826: Add support for HTTP and WebSocket endpoints to listen on the same Address/Port
  • #827: Add -Compress switch to Save-PodeState
  • #828: Add -Merge switch to Restore-PodeState, to stop overwriting of state on restore
  • #830: Make ConvertFrom-PodeJwt public, and use id_token from the TokenUrl during OAuth2 for the user object
  • #836: If -Object on Lock-PodeObject isn't supplied, use the global Lockable by default
  • #837: Adds new Stop server event hook
  • #851: Enable signals to be sent directly back to the sending client via WebSockets
  • #852: Add new $session: and $state: variable scopes
  • #862: Use -Threads on Start-PodeServer for WebSockets as well, if endpoint supplied
  • #864: Add -Force to Get-PodeSessionId to allow the retrieval of unauthorised SessionIds
  • #865: Add support for hosting Pode servers as IIS website applications
  • #869: Add new metric functions for retrieving count of current active Requests/Signals

Bugs

  • #808: Fix syntax errors in generated OpenAPI definitions
  • #829: Fix issue with Range header returning 200 instead of 404 for invalid URI
  • #845: Fix for single item arrays being converted to JSON
  • #860: Fix duplicate limits being added during IP/Route/Endpoint middleware checks

Performance

  • #856: Replace occurrences of piping to Out-Null with $null = instead (thanks @RobinBeismann!)

Documentation

  • #842: Adds additional documentation around IIS and Kerberos (thanks @ittchmh!)

Packaging

  • #843: Split up the Core.ps1 file into separate files (thanks @mark05e!)
  • #872: Bumps PowerShell to v7.1.5 in Docker images
Pode - Pode v2.4.2

Published by Badgerati about 3 years ago

Checksum: 02C18404E0E9FB2B3341EBBD55AEA09C1067FDBE5642A983FB84377242501B65

Bugs

  • #810: Fixes a Local/UTC datetime issue on Cookies, expiring sessions early
  • #811: Fixes the HTTPS parameter set on Start-PodeStaticServer
  • #814: Fixes a route ordering issue on Swagger pages

Documentation

  • #816: Fixes a typo on LoginPage (thanks @phatmandrake!)

Packaging

  • #818: Bumps PowerShell to v7.1.4 in Docker images
Pode - Pode v2.4.1

Published by Badgerati about 3 years ago

Checksum: 9960B04F7D4DF8E5CB8A4798834B28D517BDF7471626EE8C875967C146481335

Enhancements

  • #801: Add new -SearchBase parameter to Add-PodeAuthWindowsAD for OpenLDAP
  • #802: Add PEM certificate/key pair support for HTTPS endpoints

Bugs

  • #796: Fix text wrapping issue when using ldapsearch (thanks @phatmandrake!)
  • #797: When on MacOS, the default SSL protocol should only be TLS1.2

Documentation

  • #798: Update IIS hosting page to reference the minimum features required
  • #800: Add examples to Route creation for Functions/Modules (thanks @phatmandrake!)
  • #801: Update Windows AD authentication page to better reference Domain and OpenLDAP
Pode - Pode v2.4.0

Published by Badgerati about 3 years ago

Checksum: 96314E5891563ECB9740047EAC7167EFB807085965FB93A01F81CD879D7A082A

Features

  • #766: Add support for server Event Hooks, to run scripts on events like terminating the server
  • #769: Add support for custom Lockable objects

Enhancements

  • #763: Add support for SMTP attachments
  • #765: Use a random secure GUID for Session -Secret if not supplied
  • #767: Add new Restart-PodeServer to manually restart the server internally
  • #779: Replace uses of Join-Path with [System.IO.Path]::Combine
  • #786: Add new Get-PodeStateNames to get array of current Names with shared state

Bugs

  • #768: Fix for a rare multithreading bug when serialising session data
  • #770: -SuccessUseOrigin should only work for GET requests
  • #776: Fix for the PodeResponse class and the handling of AggregateExceptions

Documentation

  • #757: Add information about using netsh interface portproxy for external access as non-admin
  • #762: Update Add-PodeMiddleware function summary to reference returning a boolean value
Pode - Pode v2.3.0

Published by Badgerati over 3 years ago

Checksum: D9F9133951C149145B56BBA8A43088F8DD3FE9D689CB5973F5B834663DD50553

Features

  • #723: Add support for logging to Windows Event Viewer
  • #749: Add support for API key authentication

Enhancements

  • #731: New Use-PodeRoutes to auto-load routes from a /routes directory
  • #741: Add support for IIS to more gracefully close the site on recycle
  • #743: Add -AsCredential switch for Basic/Form authentication
  • #752: Add -AsJWT switch for Bearer/API key authentication

Bugs

  • #738: Fix a bug where the body wasn't reset on new requests

Documentation

  • #739: Flesh out the documentation on creating sites in IIS
  • #741: Add documentation on IIS application pool recycling
  • #751: Minor update to Bearer documentation to make header more visible
Pode - Pode v2.2.3

Published by Badgerati over 3 years ago

Checksum: C372754A16ACC17B6E64E8539B0B8A1398E2B9079A32D48B4091838E38510677

Bugs

  • #736: Fix issue with v2.2.2 PowerShell Gallery packaging
Pode - Pode v2.2.2

Published by Badgerati over 3 years ago

Checksum: F399F1729DEAB62356FEF625AF50016D345B6499A5FEE40B067DD8B4E636D6AE

Enhancements

  • #727: Allow referencing an OpenAPI component schema from another component schema (thanks @glatzert!)
  • #732: Allow changing of Bearer and Digest Authorization header tags

Packaging

  • #726: Bump docker images to v7.1.3, and also add a new Alpine image
Pode - Pode v2.2.1

Published by Badgerati over 3 years ago

Checksum: FD74785B407CCF78DD2EB133157A84142BA09FBC88622D0611FDFC4DB821F1B9

Bugs

  • #716: Fix bug with $TimerEvent object within Timers
  • #717: Fix bug with looping services exiting immediately
  • #720: Fix bug with enabling termination in PS ISE
Package Rankings
Top 8.17% on Proxy.golang.org
Badges
Extracted from project README
MIT licensed Documentation GitHub Actions Code Coverage Discord Chocolatey PowerShell Docker GitHub Sponsors Ko-fi PayPal
Related Projects