Pelican Releases
V7.9
Highlights
Congratulations to @patrickbrophy for his first contribution to Pelican!
For Users
- [Client] Clients can now read the PELICAN_NEAREST_CACHE environment variable for determining which cache to use #1234
- [Client] Clients can now list a collection of objects and get statistics of an object #1393 #1400
- [Plugin] The plugin now advertises the ability to move
pelican://
objects #1265 - [Client] Additional error handling has been introduced that helps users build custom clients on top of the Pelican golang libraries #1263
- [Client] Clients can now send a timeout value in their object requests, indicating to Pelican services the maximum time the client is willing to wait for requests #1299
- [Cache/Client] Caches now report to clients whether the data they returned came from the disk on the cache or from the origin #1301
- [All] Pelican now warns users about unrecognized configuration input #1325
For Admins
- [Cache] Caches no longer shutdown on startup if advertisements fail, allowing admins to fix registrations #1244
- [Director/Cache] The director can now filter caches marked as down in Topology #1260
- [Origin] Pelican can now create "XRoot" backends for adding xroot-only protocol servers to the federation #1285
- [Origin] HTTP backend export information has been added to Origin webpages #1291
- [Origin] Origins can now export Globus collections as one of their backends #1336
- [Director] The Director only responds to object requests with up to six Origin/Cache candidates #1304
- [All] Pelican images are now built on top of EL9 from the OSG23 repositories #1288
- [All] Servers now have a more permissive 5s timeout when checking for the existence of required remote resources #1328
- [Director] The Director now checks object availability among Origins for object requests sent to Origins #1283
- [All] Pelican now supports layered configuration through the specification of extra config directories in the root config using the
ConfigLocations
key #1313
Full Changelog: https://github.com/PelicanPlatform/pelican/compare/v7.8.0...v7.9.0
v7.9.5
Changelog
- [Director/Client]: Add X-Pelican-[Authorization/Token-Generation] headers to origin redirects triggered by client requests. This fixes cases where
pelican object put
is unable to generate a token due to the missing headers.
v7.9.4
Changelog
- [Servers] Make server startup timeout configurable
v7.9.3
Changelog
- [Director]: Bug fixes in
stat
code so that the Director stats against the correct URL for authenticated Topology origins.
v7.9.2
Highlights
Congratulations to @patrickbrophy for his first contribution to Pelican!
For Users
- [Client] Clients can now read the PELICAN_NEAREST_CACHE environment variable for determining which cache to use #1234
- [Client] Clients can now list a collection of objects and get statistics of an object #1393 #1400
- [Plugin] The plugin now advertises the ability to move
pelican://
objects #1265 - [Client] Additional error handling has been introduced that helps users build custom clients on top of the Pelican golang libraries #1263
- [Client] Clients can now send a timeout value in their object requests, indicating to Pelican services the maximum time the client is willing to wait for requests #1299
- [Cache/Client] Caches now report to clients whether the data they returned came from the disk on the cache or from the origin #1301
- [All] Pelican now warns users about unrecognized configuration input #1325
For Admins
- [Cache] Caches no longer shutdown on startup if advertisements fail, allowing admins to fix registrations #1244
- [Director/Cache] The director can now filter caches marked as down in Topology #1260
- [Origin] Pelican can now create "XRoot" backends for adding xroot-only protocol servers to the federation #1285
- [Origin] HTTP backend export information has been added to Origin webpages #1291
- [Origin] Origins can now export Globus collections as one of their backends #1336
- [Director] The Director only responds to object requests with up to six Origin/Cache candidates #1304
- [All] Pelican images are now built on top of EL9 from the OSG23 repositories #1288
- [All] Servers now have a more permissive 5s timeout when checking for the existence of required remote resources #1328
- [Director] The Director now checks object availability among Origins for object requests sent to Origins #1283
- [All] Pelican now supports layered configuration through the specification of extra config directories in the root config using the
ConfigLocations
key #1313 - [All] Fixed a bug that prevented some
PELICAN_*
environment variables from being read correctly #1451
Full Changelog: https://github.com/PelicanPlatform/pelican/compare/v7.8.0...v7.9.2
v7.9.1
Changelog
- d18dd643 Add config knob to enable pprof endpoints
- 2b1a1c2f Add config knob to turn off
stat
for the director - c8982a6d Add pprof endpoints
- 3ca0f14d Add two Prometheus metrics for director
stat
queries - 26f8e39f Change to use
EnableStat
instead - 559f64e9 Fix deadlock in
recordAd
andLaunchTTLCache
- aca7a484 Pre Release: Update npm version
- f49108fe Remove
stat
utils for caches as well
V7.8
Highlights
For Users
- [Client] Stopped file transfers are now retryable errors #1101
- [Client] General improvements to error messages within the client and the plugin, ensuring more accurate errors and removing redundancies
- [Client] The client can bypass the cache and download directly from the origin if a directread query parameter is set #1166
For Admins
- [Documentation] Added documentation on how to get the public key of a running origin #1078
- [Documentation] Added documentation on how to run pelican servers via docker containers #1089
- [Origin] Pelican origin token creation now respects the issuer flag #1135
- [Cache] Cache UI will now redirect to a login page for an unauthorized user #1103
- [Origin/Cache] Improved “site name” handling #1176
- [Director] Director JWKS cache no longer becomes invalid when the registry goes down #1119
- [Director] Added a prometheus metric keep track of the total number of advertisements to the director #1133
- [Director] Enable director login via OAuth #1150
- [Cache] Allow the cache xrootd to have multiple data/meta mount locations #1191
- [Director/Registry/Origin/Cache[ Read environment variables with PELICAN prefix for Pelican binaries with alias (stashcp and osdf) and deprecate alias-specific prefixes #1162
v7.8.9
Changelog
- Correct typo in map name to fix ad sorting/filtering and add unit test with real topology data
v7.8.8
Changelog
- Fix issue with filtering/consolidating multi-export topology origins
v7.8.7
Changelog
- Fix panic in Director
- Improve Director's error response to clients
v7.8.6
Changelog
Disable ZTN authentication on Pelican origins
v7.8.5
Changelog
Bug fixes to restore missing collections-url
when the Director is redirecting to a topology-only origin.
v7.8.4
Changelog
- bb74abb7 Adjust timeout test to reflect new timeout value
- e0dd8794 Build xrootd-multiuser from source in dev container
- 37beb73f Cleanup unstopped ticker in WaitUntilWorking
- 0dead744 Fix bug w/ client not working for WithToken option
- 06865b24 Increase
WaitUntilWorking
transfer timeout and adjust error message - ece8c4c7 Pre Release: Update npm version
v7.8.3
Changelog
- a92d4954 Add an XRoot storage backend
- 9c09ab14 Aggregate gin routes for Prometheus metrics
- 19d1c86c Cleanup missed linter item
- 6364cea7 Incorporate review feedback
- 4a026005 Pre Release: Update npm version
v7.8.2
Changelog
- 3d129f6e Concatenate multiple issuer names for the same issuer url
- f1a7028c Improve error reporting for cache self-test
- b0e78303 Improve scitoken generation error handling
- f10f7cad Pre Release: Update npm version
- d11c32d7 Pre Release: Update npm version
- 66d2dcee Pull sefl-test folder out from the director tests
- 8f5102c8 Use
Cache.LocalRoot
internally - 3a8652c2 Use
and
to connect two issuer names - 694b3524 Use externalWebUrl as the token issuer for self-tests
v7.8.1
Changelog
Fixed Cache shutting down if advertisement fails #1244 Plugin advertises PluginVersion with -classad #1252
V7.7
Highlights
For Users
- [Plugin] stash-plugin now supports recursive uploads and downloads #1011
For Admins
- [General] Fixed administrator authentication check failure for all servers #1013
- [Documentation] Major revisions to the documentation with new documentation for serving a cache #1028 #904 #912
- [General] Globus was added as the second supported OAuth provider #963
- [General] Formatted discovery and federation endpoints to be standard https URLs #974
- [Origin/Cache] Pelican Origin and Cache now support OAuth authentication for the admin website #963
- [Origin] Origins that export S3 can now export multiple buckets with unique
access/secret keys #1045
- [Origin] Origin now can check a sentinel file for the mounted POSIX storage #1003
- [Origin] Origins now support HTTPS servers as a storage backend #958
- [Cache] Admin website is now available for the Cache #1039
- [Cache] New Prometheus metric to monitor cache access statistics #1007
- [Director] Director admin can now disable traffic to cache and origin servers #933
- [Director] HEAD request is now supported when the client request a file from the federation #1000
What's Changed
- Upgrade golangci GHA version and turn off caching by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/935
- Fix log color loss and
LogLocation
not working by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/939 - Fix pelican plugin bug
no valid classads...
by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/942 - Embed
serve
as default command to run the server container by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/947 - Improve installation docs and include running Pelican server with docker image by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/904
- Update documentation to serve an origin by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/912
- Correct the key for docker doc page by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/955
- Moved failing macos tests into a linux only test file so as to stop c… by @turetske in https://github.com/PelicanPlatform/pelican/pull/959
- Remove
generate
package when releasing by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/937 - Create tmp cinfo file for cache self test under the same folder as the final file by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/952
- Updating GitHub Actions to deal with size issues by @turetske in https://github.com/PelicanPlatform/pelican/pull/950
- Fix bug with version being "dev" by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/962
- API support for registry admin to delete a namespace registration by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/915
- Allow RSA key for TLS by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/965
- Revert changes that remove
generate
package by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/967 - Airplane mode by @bbockelm in https://github.com/PelicanPlatform/pelican/pull/926
- Update Pre Release by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/982
- Consolidate two
namespaceExists
DB function by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/924 - Allow admin to configure filtering servers for redirecting traffic at the director by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/933
- Director based cache health tests by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/960
- Import parameters.json into website by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/972
- Fix director default response and add HEAD as allowed verb by @jhiemstrawisc in https://github.com/PelicanPlatform/pelican/pull/1000
- Pelican client advertises timeout to cache by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/1002
- Overhauling discovery endpoint by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/974
- Unit test for statHttp within Pelican Client by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/890
- Redirect logging location reminder to stderr by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/989
- Fix bug where project name not set in user-agent by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/977
- Authenticated self-tests for cache by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/978
- More verbose error message at director registration failure by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/992
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.20 to 2.0.21 by @dependabot in https://github.com/PelicanPlatform/pelican/pull/1014
- Periodic cleanup of origin test files by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/987
- Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 by @dependabot in https://github.com/PelicanPlatform/pelican/pull/1015
- Output pelican config to stderr at server start by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/994
- More detailed error message at
WaitUntilWorking
not working by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1016 - Update Prometheus doc to introduce counting server number by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1009
- Cache hit/miss bytes Prometheus metric by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1007
- Fix invalid error message type as server response by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1023
- Pin external c++ dependencies at a specific commit by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1022
- Add LotMan configuration to the cache by @jhiemstrawisc in https://github.com/PelicanPlatform/pelican/pull/889
- getNamespaceByPrefix now checks topology for namespace existence by @turetske in https://github.com/PelicanPlatform/pelican/pull/1021
- List namespace topology through UI by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1031
- Remove Testing Code by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/1036
- Create serving_a_cache.mdx by @turetske in https://github.com/PelicanPlatform/pelican/pull/1028
- Add server urls to error messages for
WaitUntilWorking
by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1034 - Print pelican version at server startup to stderr by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1027
- Remove use of global fed metadata within client by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/878
- Add the option for a sentinel file for the origin by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1003
- Do not log "director test timeout" warning if director can't be reached out by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/991
- Improved plugin error messaging by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/999
- Add "login required" endpoints behind "admin" check and fix bug in admin auth handler by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1013
- Fixes to pelican plugin staging by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/882
- Allow configurable cache watermarks by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/973
- Add Cache Webpage by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/1039
- Add support for director/federation contact info as a configuration by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1012
- Protocol version added to plugin -classad output by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/1051
- Fix error responses for local cache by @bbockelm in https://github.com/PelicanPlatform/pelican/pull/1041
- Removed the setting of an AuthURL for Pelican serverAds by @turetske in https://github.com/PelicanPlatform/pelican/pull/1043
- Refactor registry namespace check to be compatible with OSDF topology by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1038
- More error tolerant web ui check by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1040
- Add support for custom xrootd config file by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/968
- Config fixups by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/1057
- Add topology timeout by @turetske in https://github.com/PelicanPlatform/pelican/pull/1058
- Plug S3 plugin changes into multi-export S3 origins by @jhiemstrawisc in https://github.com/PelicanPlatform/pelican/pull/1045
- Bump the revision of xrdcl-pelican for libcurl testing by @bbockelm in https://github.com/PelicanPlatform/pelican/pull/1065
- Correctly return the transfer attempt information by @bbockelm in https://github.com/PelicanPlatform/pelican/pull/1063
- Update Director by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/1068
- Move default S3 url style from defaults.yaml to config.go by @jhiemstrawisc in https://github.com/PelicanPlatform/pelican/pull/1070
- Update Origin UI to use API for the new
Origin.Exports
scheme by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1042 - Allow recursive uploads/downloads in plugin by @joereuss12 in https://github.com/PelicanPlatform/pelican/pull/1011
- Make the local cache location unique for each test run by @bbockelm in https://github.com/PelicanPlatform/pelican/pull/1066
- Enabling OAuth for the origin and cache, adding support for Globus as another auth server by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/963
- Update login UI by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/1030
- Only push the production container when the release was cut by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1077
- Cache Updates by @CannonLock in https://github.com/PelicanPlatform/pelican/pull/1083
- Fix broken URLs of namespaces from the topology at the director by @haoming29 in https://github.com/PelicanPlatform/pelican/pull/1071
- Add support for HTTP backend by @bbockelm in https://github.com/PelicanPlatform/pelican/pull/958
Full Changelog: https://github.com/PelicanPlatform/pelican/compare/v7.6.5...v7.7.0
v7.7.7
Changelog
- Fix director memory leak (https://github.com/PelicanPlatform/pelican/pull/1237)
v7.7.6
Changelog
- Update S3 plugin in containers to fix segfault (#1207)
Note: This release only contains changes to Pelican Docker containers. For users who use binary or packaged version of Pelican, this release is the same as v7.7.5 release.
v7.7.5
Changelog
- Fix cache dashboard page skips auth check and wrong health metric name (#1103)
- Fix infinite redirect of UI init page (#1193)
v7.7.4
Changelog
- Fix
--version
flag output #1171
v7.7.3
Changelog
- Plugin returns last attempted source & filters \n (#1115)
- Replace
jwks.cache
by TTL cache for namespace jwks at the director (#1119)
v7.7.2
Changelog
- Fix deadlock in client #1098
v7.7.1
Changelog
- Turn off LotMan while we investigate dlopen issues #1087
V7.6
v7.6.5
Changelog
- 27be834e Address PR comments
- 037c0fb2 Adjusted call to topology to include a transport with a timeout
- 5a009413 Adjusted patch to work with 7.6
- a74d9ec1 Allow registration with existing topology ns, update tests to pass
- f02fb6b4 Better error message when registry status check failed and director attempt to verify a reg
- 004c0ff3 Changed some namespaceExists to namespaceExistsByPrefix calls that were missed in the cherry-pick
- 64545bf4 Fix description
- 2f93a17f Fixed failing tests from patched commits
- d3543165 Improv to registry endpoint and err msg with new registry health metric
- f6476a22 Pre Release: Update npm version
- cade41f3 Reduced topology reload times to 4.5 minutes
- 694e5b47 Revert previous changes
- da0593e8 Revise error message to include topo ns
- 45643eb4 Update tests
- 575dc3e2 getNamespaceByPrefix now checks topology for namespace existence
v7.6.4
Changelog
- eda90ad2 Fixed missing space after input authfile namespaces
- ce63a85e Pre Release: Update npm version
v7.6.3
Notes
Fixed an error with an extra newline in the cache authfile generation
Changelog
- e8c7cccf Allow RSA key for TLS
- 9d587ccb Fix bug with version being "dev"
- f92e83fe Moved failing macos tests into a linux only test file so as to stop constantly failing test runs until we get a fix
- d447abdc Pre Release: Update npm version
- d360e742 Pre Release: Update npm version
- fe2d0687 Removed extra newline in authfile cache generation
- 39a5c822 Rename tests to be more clear
- 93c99582 Revert changes that remove
generate
package - 47cbbad3 Update Pre Release
v7.6.2
Highlights
For Users
- [Breaking Change] – Removed the deprecated Federation.NamespaceURL parameter. This will cause failures if a user is still using that value as opposed to Federation.RegistryURL
- [Experimental] – Adds a local whole-file-only cache which works over a Unix domain socket
- [Client] Multiple uploads and downloads are always done in parallel
- Federation discovery download failures are marked as retryable
- [BugFix] Fixed “No Valid ClassAds …” error with a return code of 0
For Admins
- [Breaking Change] – Removed the redacted Federation.NamespaceURL parameter. This will cause failures if a user is still using that value as opposed to Federation.RegistryURL
- [Documentation] – Added documentation for serving a registry and director to the website
- [Documentation] – Added documentation for setting up Grafana to visualize metrics collected on Pelican servers
- [General] – We now build separate images for each Pelican server module
- [Origin] – S3 origins no longer require a bucket to be specified
- [General] – Fixed a bug where Prometheus token didn’t renew and caused 403 errors at the origin and cache servers
- [General] – We now allow edits of Pelican server configurations via the web UI
- [Registry] – Improved web UI for namespace registration and management
- [Cache] – Added a Cache.Concurrency parameter to limit the number of connections to a cache
- [General] – Fixed a bug where XrootD process leaks when Pelican server encounters error at its start
- [Cache] – Cache’s can now start with a list a accepted namespaces they will accept origin data from
- [Origin] – Origins now support multiple exports with different authorization configurations
v7.6.1
Changelog
- 6ce3c95 Clean up dockerfile
- 4a9acaa Embed
serve
as default command to run the server container - e52e8e6 Fix log color loss and LogLocation not working
- c8afe0a Fix pelican plugin bug
no valid classads...
- 9e4669f Fix the bug where logging level doesn't work
- d360e74 Pre Release: Update npm version
- d34a5ec Set default command while allowing users to change
V7.5
v7.5.9
Changelog
For Admins
- [Origin] -- Configured public origins to use XRootD directive
sec.protbind
to allow backwards compatibility with legacy OSDF caches.