Releases: It4innovations/HEAppE
V6.1.1
V6.1.0
Added
- Bearer authentication for LEXIS – implemented support for JWT bearer tokens and introspection for federated identity providers.
- SSH CA support – added API endpoints and authentication mechanism for SSH Certificate Authority (SSH CA) access on clusters.
- Management automation enhancements:
- Background worker now automatically performs database backups according to configured schedule.
- Automatic detection and tracking of stored account statuses.
- Status checks are performed via dry-run jobs for verification without execution.
- New Management endpoints for database maintenance:
GET /heappe/Management/Backups– List database backupsPOST /heappe/Management/BackupDatabase– Perform full database backupPOST /heappe/Management/BackupDatabaseTransactionLogs– Backup database transaction logsPOST /heappe/Management/RestoreDatabase– Restore database from a specified backup file
- DataTransfer endpoint for large payloads:
POST /heappe/DataTransfer/HttpPostToJobNodeStream– Stream large HTTP POST requests to the job node, designed for AI inference use cases.
Changed
- Updated Swagger documentation to include new Management endpoints.
- Extended internal ManagementService with backup and restore functionalities.
Fixed
- Minor stability and logging improvements.
New Endpoints: 7
POST /heappe/DataTransfer/HttpPostToJobNodeStream
POST /heappe/Management/BackupDatabase
POST /heappe/Management/BackupDatabaseTransactionLogs
GET /heappe/Management/Backups
POST /heappe/Management/RestoreDatabase
POST /heappe/Management/Status
POST /heappe/Management/StatusErrorLogs
Deleted Endpoints: 4
DELETE /heappe/Management/SecureShellKey
POST /heappe/Management/SecureShellKey
PUT /heappe/Management/SecureShellKey
POST /heappe/Management/TestClusterAccessForAccount
Modified Endpoints: 3
GET /heappe/ClusterInformation/ListAvailableClusters
- Modified query param: SessionCode
- Required changed from true to false
POST /heappe/FileTransfer/RequestFileTransfer
- Responses changed
- Modified response: 200
- Content changed
- Modified media type: application/json
- Schema changed
- Properties changed
- Modified property: Credentials
- Properties changed
- Modified property: CredentialsAuthType
- New enum values: [10 11]
- Modified property: CredentialsAuthType
- Properties changed
- Modified property: Credentials
- Properties changed
- Schema changed
- Modified media type: application/json
- Content changed
- Modified response: 200
V6.0.0
Changed
- Enhanced logging in
DataTransferendpoints - Redefined
Job ExecutionandJob Log Archive path(dedicated to specific HEAppE instance and cluster user) - Redefined path to
cluster scriptsand setup for eachClusterAuthenticationCredentialandProject Management/InitializeClusterScriptDirectorybody and business logic- Response structure of the
TestClusterAccessForAccount(added info/check about specific access to the cluster) - Unify Attribute Names in CopyJobDataToTemp and CopyJobDataFromTemp endpoint payloads
- Optimized
ListAvailableClustersendpoint and enhanced caching
Added
- 1:1 user mapping to SSH key at
Projectlevel - Possibility to send
application/jsonpayload withHttpPostToJobNode - Support for the
EdDSA - ED25519SSH key pair generation - Options
ConnectionRetryAttemptsandConnectionTimeoutfor SSH client component are now configurable fromappsettings.json - API HTTP Request logging with payload (redacted output on
Sensitive data) - Add
/heappe/Healthcheck endpoint - Health checks are not visible in swagger
Reasonattribute propagation from the HPC job (in the HEAppE Task)IsInitializedattribute forClusterAuthenticationCredentialswith check for all endpoints which usesClusterAuthenticationCredentialto connect HPC- Endpoints for bulk listing of
ClusterNodeTypes,FileTransferMethods,Projects,ClusterNodeTypeAggregationAccountings - Endpoint to Reset ListAvailableClusters Memory Cache
- Automatic cluster account initialization feature configurable from
appsettings.json
Fixed
External UsageTypemodel conversion toInternal UsageTypemodel (enum)- Fixed wrong error messages for CommandTemplateParameters methods in ManagementService
- Typo in TaskParallelizationParameters in the
HEAppE Taskspecificaton inCreateJobendpoint - Corrected the
SubmittedJobInfoIdfield toSubmittedTaskInfoIdin REST API endpointsheappe/DataTransfer/RequestDataTransfer,heappe/DataTransfer/HttpPostToJobNode, andheappe/DataTransfer/HttpGetToJobNodeto reflect that these endpoints operate on Submitted Task according to the service and business logic tier - Implemented logic to automatically split SSH command requests to remove SSH keys in the Background Worker when exceeding the maximum SSH.NET packet size, ensuring complete removal of temporary keys without encountering the error.
- Multiple SSH Tunnel creation support and port allocation when using
heappe/DataTransfer/RequestDataTransferendpoint - SessionCode regeneration method
New Endpoints: 11
POST /heappe/ClusterInformation/ListAvailableClustersClearCache
GET /heappe/Health
GET /heappe/Management/Accountings
GET /heappe/Management/ClusterAccountStatus
GET /heappe/Management/ClusterNodeTypeAggregationAccountings
GET /heappe/Management/ClusterNodeTypes
GET /heappe/Management/ClusterProxyConnections
GET /heappe/Management/FileTransferMethods
PUT /heappe/Management/ModifyClusterAuthenticationCredential
GET /heappe/Management/ProjectAssignmentToClusters
GET /heappe/Management/Projects
Deleted Endpoints: None
Modified Endpoints: 17
GET /heappe/ClusterInformation/ListAvailableClusters
- New query param: ForceRefresh
POST /heappe/DataTransfer/HttpGetToJobNode
POST /heappe/DataTransfer/HttpPostToJobNode
POST /heappe/DataTransfer/RequestDataTransfer
POST /heappe/JobManagement/CopyJobDataToTemp
POST /heappe/JobManagement/CreateJob
GET /heappe/JobReporting/JobsDetailedReport
- New query param: TimeFrom
- New query param: TimeTo
- Modified query param: SessionCode
- Description changed from 'Session code' to ''
- Modified query param: SubProjects
- Description changed from 'SubProjects' to ''
DELETE /heappe/Management/CommandTemplateParameter
- Summary changed from 'Remove Static Command Template' to 'Remove an existing Command Template Parameter'
GET /heappe/Management/CommandTemplateParameter
- Summary changed from 'Get CommandTemplateParameter by id' to 'Get Command Template Parameter by id'
POST /heappe/Management/CommandTemplateParameter
- Summary changed from 'Create Static Command Template' to 'Create a new Command Template Parameter'
PUT /heappe/Management/CommandTemplateParameter
- Summary changed from 'Modify Static Command Template' to 'Modify an existing Command Template Parameter'
POST /heappe/Management/InitializeClusterScriptDirectory
POST /heappe/Management/Project
PUT /heappe/Management/Project
POST /heappe/Management/ProjectAssignmentToCluster
PUT /heappe/Management/ProjectAssignmentToCluster
GET /heappe/Management/TestClusterAccessForAccount
- Responses changed
- Modified response: 200
- Extensions changed
- Modified extension: schema
- Added /items with value: 'map[$ref:#/definitions/ClusterAccessReportExt]'
- Modified /type from 'string' to 'array'
- Modified extension: schema
- Extensions changed
- Modified response: 200
Other Changes
Extensions changed
- Modified extension: definitions
- Added /ClusterAccessReportExt with value: 'map[additionalProperties:false properties:map[ClusterName:map[description:Cluster name type:string] IsClusterAccessible:map[description:Is cluster accessible type:boolean]] type:object]'
- Added /ClusterAccountStatusExt with value: 'map[additionalProperties:false properties:map[Cluster:map[$ref:#/definitions/ClusterExt] IsInitialized:map[description:Is initialized type:boolean] Project:map[$ref:#/definitions/ProjectExt]] type:object]'
- Added /ClusterExt/properties/FileTransferMethodIds with value: 'map[description:File transfer ids items:map[format:int64 type:integer] type:array]'
- Added /ClusterNodeTypeExt/properties/ClusterId with value: 'map[description:Cluster id format:int64 type:integer]'
- Removed /ClusterProjectExt/properties/LocalBasepath with value: 'map[description:Local base path maxLength:100 minLength:0 type:string]'
- Added /ClusterProjectExt/properties/PermanentStoragePath with value: 'map[description:Permanent Storage Path maxLength:100 minLength:0 type:string]'
- Added /ClusterProjectExt/properties/ScratchStoragePath with value: 'map[description:Scratch Storage Path maxLength:100 minLength:0 type:string]'
- Modified /CommandTemplateParameterValueExt/properties/ParameterValue/maxLength from '1000' to '100000'
- Added /CopyJobDataToTempModel/properties/CreatedJobInfoId with value: 'map[description:Created job info id format:int64 type:integer]'
- Removed /CopyJobDataToTempModel/properties/SubmittedJobInfoId with value: 'map[description:Subbmited job info id format:int64 type:integer]'
- Removed /CreateProjectAssignmentToClusterModel/properties/LocalBasepath with value: 'map[description:Local base path maxLength:100 minLength:0 type:string]'
- Added /CreateProjectAssignmentToClusterModel/properties/PermanentStoragePath with value: 'map[description:Permanent Storage Path maxLength:100 minLength:0 type:string]'
- Added /CreateProjectAssignmentToClusterModel/properties/ScratchStoragePath with value: 'map[description:Scratch Storage Path maxLength:100 minLength:0 type:string]'
- Added /CreateProjectModel/properties/IsOneToOneMapping with value: 'map[description:Map user account to exact robot account type:boolean]'
- Added /Database_ with value: 'map[additionalProperties:false properties:map[IsHealthy:map[description:Database is healthy type:boolean]] type:object]'
- Added /ExtendedClusterExt/properties/FileTransferMethodIds with value: 'map[description:File transfer ids items:map[format:int64 type:integer] type:array]'
- Modified /FileTransferCipherTypeExt/enum/0 from '0' to '1'
- Modified /FileTransferCipherTypeExt/enum/1 from '1' to '2'
- Modified /FileTransferCipherTypeExt/enum/2 from '2' to '3'
- Modified /FileTransferCipherTypeExt/enum/3 from '3' to '4'
- Modified /FileTransferCipherTypeExt/enum/4 from '4' to '5'
- Modified /FileTransferCipherTypeExt/enum/5 from '5' to '6'
- Added /FileTransferMethodNoCredentialsExt/properties/ClusterId with value: 'map[description:Cluster id format:int64 type:integer]'
- Removed /GetDataTransferMethodModel/properties/SubmittedJobInfoId with value: 'map[description:Subbmited job info id format:int64 type:integer]'
- Added /GetDataTransferMethodModel/properties/SubmittedTaskInfoId with value: 'map[description:Submitted task info id format:int64 type:integer]'
- Added /HealthComponent_ with value: 'map[additionalProperties:false properties:map[Database:map[$ref:#/definitions/Database_] Vault:map[$ref:#/definitions/Vault_]] type:object]'
- Added /HealthExt with value: 'map[additionalProperties:false properties:map[Component:map[$ref:#/definitions/HealthComponent_] IsHealthy:map[description:IsHealthy type:boolean] Timestamp:map[description:Timestamp format:date-time type:string] Version:map[description:Version type:string]] type:object]'
- Removed /HttpGetToJobNodeModel/properties/SubmittedJobInfoId with value: 'map[description:Subbmited job info id format:int64 type:integer]'
- Added /HttpGetToJobNodeModel/properties/SubmittedTaskInfoId with value: 'map[description:Submitted task info id format:int64 type:integer]'
- Removed /HttpPostToJobNodeModel/properties/SubmittedJobInfoId with value: 'map[description:Subbmited job info id format:int64 type:integer]'
- Added /HttpPostToJobNodeModel/properties/SubmittedTaskInfoId with value: 'map[description:Submitted task info id format:int64 type:integer]'
- Removed /InitializeClusterScriptDirectoryModel/properties/ClusterProjectRootDirectory with value: 'map[description:Cluster project root directory type:string]'
- Added /InitializeClusterScriptDirectoryModel/properties/OverwriteExistingProjectRootDirectory with value: 'map[description:Overwrite existing cluster project root directory type:boolean]'
- Added /InitializeClusterScriptDirectoryModel/properties/Username with value: 'map[description:Username type:string]'
- Added /Mod...
V5.0.0
Changed
- Updated to the .NET 9
- Allowed to
DeleteJobin stateConfiguringorWaitingForServiceAccount
Added
- Automatic docker compose Vault initialization and unsealing procedure
- Propagation of JobState
DeletedintoJobSpecification - HPC job archive option at
DeleteJobendpoint - Job Log archive access from
FileTransferendpoints ListChangedFilesForJobendpoint job logs archive listing when HPC Job deleted and archived- Feature to enable or disable
CommandTemplatebyIsEnabledproperty - Advanced filter for
ListavailableClustersendpoint - JobState filter for
ListJobsForCurrentUser - Management endpoints for HEAppE entities
Fixed
- An issue where creating and submitting a job with
MaxCoresmissing - Concurrent auth token evaluation issue and role mapping (by single user)
- Swagger models description
V4.3.0
Added
- Hashicorp Credentials Vault implementation as secure storage for HPC credentials
- Scripts to initialize vault and migrate data from database to vault
- SubProjects for logical organization of the Jobs under the Projects
- SubProject management via API
- Aggregation of the Cluster Node Types
- Accounting & Reporting by specific accounting formula
- Asynchronous accounting computation endpoint and accounting state monitoring endpoint
Fixed
- Wrong relative path propagation as result of
FileTransfer/ListChangedFilesForJobendpoint when usingClusterTaskSubdirectory - Internal error when cancelling jobs
- Internal error when using an expired session code
Changed
- Enhanced JobReporting endpoints outputs and ability of filtering
JobManagement/CreateJobendpoint body extended by optional parameterSubProjectIdentifierin theJobSpecificationsection
V4.2.1
Added
- Command Template management via API
Fixed
- Initialize Cluster Script Directory method
- LEXIS V2 AAI
- Problem with SSH connection (.SSH Net Library)
- Cancel job functionality in exclusive mode
Changed
- Session exception handling
Security
- Packages update due to vulnerability
V4.2.0
Added
- HyperQueue scheduler support
- API Project Management support
- LEXIS V2 AAI support
- Shared pool mode support
- Cluster Scripts initialization via API
- Enhanced Exception handling
- Enhanced HPC project information
- User role management improvement
Fixed
- SFTP interactive mode
- HPC Identities rotation
V4.1.1
Fixed
- Fix Regex
V4.1.0
Added
- Adding SSH key for HPC identity via API
- DataStaging independent API endpoint
V4.0.0
Added
- Multi-HPC projects support
- SLURM scheduler QOS attribute support
Changed
- API methods updated