Skip to content

Releases: CESNET/perun

Release 3.9.0

24 Feb 12:12
v3.9.0
14be839
Compare
Choose a tag to compare
  • This version requires DB update.
  • This version requires LDAP schema update.
  • This version deprecates some API, which
    will be removed in the next version.

BIG CHANGES

  • In LDAP we moved Facility attributes from Resource to Facility,
    where they belong.
  • We push multiple new attributes to LDAP from admin roles of user above other
    entities to entitlement or resource capabilities (see LDAPc changelog).
  • LDAPc can run without write access to DB for running or replicas.
  • We store TaskResults for generating Tasks, so that in GUI we can see if
    service provisioning is blocked/stuck on Perun side or managed service side.
  • Old attributes for files/data quotas were removed and replaced by the new
    logic.
  • API methods of GeneralServiceManager and PropagationStatsReader were
    moved to ServicesManager and TasksManager respectivelly. Old API will be
    removed in release 3.10.0.
  • We allow registrar to generate new logins for users (using registrar module)
    and they are editable in registratio form.
  • Authorization Roles are no longer sourced from DB, but rather perun-roles.yml
    as we will be heading for dynamic authorization rules in next releases.
  • We split attribute value checks method on syntax and semantics checks as it
    is required for having "state of member on resource" feature coming in next
    releases.
  • Added OpenAPI definition of Perun API, so that client libraries can be
    generated from it. Its not yet complete and will be updated in next releases.

CHANGELOG

CORE

  • Fixed methods with forgotten usage of attribute cache.
  • Fixed authorization for group-resource attributes.
  • Store TaskResult for blocked destinations.
  • TaskResults stored for cancelled/stuck GEN Tasks
    are now recognized as error (just like SEND Tasks).
  • Allow tag replacements in custom template for
    password reset confirmation.
  • Store also organizationURL attribute from IdP.
  • InternalErrorException changed to runtime.
  • Added audit messages when user/group became admin of
    other entity.
  • Create audit messages for removed admins of deleted
    entities.
  • Methods for work with registrar notifications throws
    proper exceptions.
  • Attribute vo:def:voLogoURL can hadle base64 encoded images.
  • Added logging to ConsolidatorManager.
  • Log when somebody was invited to register to VO/Group.
  • Fixed bug in group structure synchronizations (when ext source is changed).
  • Keep cookies when synchronizing between Perun instances.
  • Fixed certificates reading in ExtSource for EGISSO.
  • Fixed null pointer when storing UserExtSource attributes.
  • Fixed null pointer in hasRole().
  • Fixed getBeanName() in ExtSource object.
  • Simplified code for deleting group.
  • Changed entity ID for LifescienceID proxy.
  • Added module for user:virt:loaFenix attribute.
  • Fixed group members synchronization. Actual group members
    are not removed, if found between group members in
    external source, but their attributes can't be retrieved
    from the ext source.
    They are mentioned between skipped members and synchronization
    is considered as failed.
  • Normalized unix paths in data/file quota modules now strips
    endind slash "/", since path to directory musnt end with
    it in some systems (GPFS) and it works OK with others.
  • Fixed audit message resolving on user:virt:certDNs attribute, which
    prevented pusching changes in certificates to the LDAP.
  • Do not use fixed version of HikariPool, bump it with Spring Boot.
  • Use voPersonExternalAffiliation instead of forwardedScopedAffiliation.
  • Fixed login display when adding new members to VO/Group.
  • Refresh of all attributes in setRequiredAttributes.
  • Forbid indirect relationships for group unions.
  • Fixed leap year membership expiration calculation.
  • Updated Spring and Spring Boot to their latest version.

REGISTRAR

  • Mail verification was separated from auto-approval process so that
    user can verify own mail even if auto-approval fails.
  • Removed requirement for POST in get* like methods of Registrar.
  • Fill LoA in registration form items to support optional
    mail validation for mails from IdPs.
  • Prevent concurrent run of approve/reject/delete application.
  • Fixed some form items UI.

API

  • Added MembersManager.createSponsoredMember() which takes
    new user name in parts.
  • Added utility method unblockAllServicesOnDestination().
  • Allow to delete multiple attribute definitions at once.
  • Added API methods to retrieve users UserExtSources as
    RichUserExtSources, containing specified UES attributes.
  • Fixed authorization in VosManager API.
  • Fixed authorization in getFacilitiesByDestination and
    findCompleteRichMembers.
  • Allow partial match when searching for Resource
    by attribute value in Searcher.
  • Added OpenAPI definition of Perun API. It is not yet complete,
    but client side can be generated - eg. perun-cli-java
    or perun-cli-python projects.
  • Added API method getResourcesWhereUserIsAdmin(Vo,User).
  • Added new methods for publication management (perun-cabinet)
    in order to optimize performance.

GUI

  • Working with registrar notifications will let you know
    about conflicts - existing or removed notifications etc.
  • Removed sign out button from user profile, since based on
    authentication method, it can't force re-authentication on
    next access.
  • Implemented GDPR agreement for administrator
    (specific to CESNET instance).
  • When member status is changed between VALID and EXPIRED,
    admin is offered to update also membersip expiration value.

DISPATCHER / ENGINE

  • 3 hours timeout for single service provisioning run
    is now configurable in dispatcher and engine properties.
  • Removed unused properties from config files.
  • Renamed default dispatcher auditer_consumer.
  • Do not chown PID files in init.d script for Engine.

LDAPc

  • Allow to mark LDAP attributes as deleted in LDAPc. LDAPc will clear
    their values from LDAP and it allows us to remove such attributes from
    schema in next release.
  • Added many facility attributes to LDAP, facility attributes are
    no longer pushed within Resource entry, but rather own Facility
    entry.
  • Push VO/Group/Facility admin roles from Perun to the LDAP.
  • Fixed name of ORCID attribute for LDAP.
  • LDAPc now can push Map attribute types from Perun to LDAP.
  • Do not chown PID files in init.d script for LDAPc.
  • Push also following attributes to LDAP: resource:capabilities,
    facility:capabilities, user:eduPersonEntitlement,
    user:eIDASPersonIdentifier a user:europeanStudentID.

CLI

  • Added assignTagToResource.
  • Added listOfMemberGroups.
  • Added getFacilitiesByHostName.

DOCS

  • Parse deprecation notice from javadoc to RPC docs.
  • Fixed docs for getRichAdmins().
  • Added javadoc on perun Exceptions.
  • Updated RPC javadoc.

Release 3.7.0

22 Jul 07:11
v3.7.0
afde3da
Compare
Choose a tag to compare

Changelog (since 3.6.0)

  • This version contains DB changes and they must be apllied
    when Perun is shut down!
  • Because of changes in AuditMessage object this version requires
    equal version of all consumers - e.g LDAPc to be deployed at the
    same time.

CORE

  • Reverted changes to BBMRI lifescience hostel modules.
  • Ignore AlreadyMemberException in BBMRI modules.
  • Split relation to perun attribute in registration form items into
    source and destination attribute. Form item value can be
    then pre-filled from different attribute than stored or doesn't
    have to be stored or pre-filled at all, based on your settings.
  • Switching member to EXPIRED state will now trigger attribute
    validation (when former state is INVALID or DISABLED).
  • Added "lastAccess" property to UserExtSource and display it
    in administrative GUI.
  • Added suspended and suspendedTo params to Member and RichMember
    objects. They will hold suspension state of Member in the future,
    while SUSPENDED member status will be removed from the life-cycle.
    It is not used anyhwere yet, except the member object.
    Regarding deserialization, "suspendedTo" is required (null or date in
    string format), while "suspended" is a boolean flag derived from the
    current date and its relation to "suspendedTo" property.
  • Added methods to set or removed new suspended state for member.
  • Enabled locking of groups members during add/remove group member operations.
    It will prevent any future inconsistencies in group memberships caused by
    complex group relation structures and synchronizations and manuall changes.
  • Rework of internal AuditMessage / AuditEvent handling. We now exclusivelly
    use JSON format of messages. It still contains original string data, but
    wrapping object and API has changed and required proper version of all
    consumers (eg. LDAPc).
  • Removed support for sending notifications to Jabber service.
  • Support group synchronization in exact times (specified as list of HH:MM rounded
    to 5 minutes).
  • Store also start time of last successful group synchronization.
  • Fixed unnecessary session initiation for BA/Kerberos authz.
  • Fixed format of audit message for planned service propagation.
  • Fixed setting authz to members group for vo managers.
  • Fixed bad sql when checking security manager role for user.
  • Fixed user resolving for user:virt:loa on user deletion.
  • Fixed attribute module for systemUnixGroupName which prevented
    value deletion even if group was not system unix group.
  • Added requestor to message body, when errors are reported
    to the mail address instead of mail.

LDAPC

  • Big improvements of LDAP initialization performance in new LDAPc.
  • Fixed removal of non-existent entries from LDAP during sync.
  • Allow oracle driver inclusion during build of new LDAPc.

GUI

  • Delete VO members using single callback for list of members.
  • Fixed message in GUI when user changes mail.
  • Show new settings related to the group synchronization
    in pop-up window for group sync state.

API

  • Big rework of AuditMessagesManager API.
  • AuditMessage now contains AuditEvent instead of simple string message.
    It is still mainly used to read audit events/messages data.
  • Added getAttributes() method for resource, group and member which will
    retrieve attributes for all related entities, including facility and resource.
  • Added new methods to AuthzResolver getUser/GroupRoles().

CLI

  • Added CLI for listing facilities by owner.
  • Support SPONSOR role in setRole unsetRole tools.
  • Added tools listOfExpiredGroupMembers and
    listOfNotExpiringGroupMembers which can list members and
    show their group expiration.

OTHER

  • Removed unused default oidc settings for devel.
  • Removed unused auditer-exporter module.
  • Removed TextFile and SvgImage deserializers. Removed GraphViz library
    responsible for drawing attribute dependencies images. It will be returned
    as a string and UI app will draw the graphs.
  • Removed all references for unused auditer_subscribers table.
  • Updated Spring to 5.1.8.
  • Updated RPC API docs for moveGroup() and some other methods.
  • Removed all custom JSON, CSV parsing, we exclusivelly use jackson library (v2).

Release 3.6.0

11 Jun 10:13
v3.6.0
39f90e4
Compare
Choose a tag to compare

Changelog (since 3.5.0)

CORE

  • Added new configuration options for HikariCP in jdbc.properties.
  • SMTP configuration was moved and joined from notifications module
    and registrar module into core (perun.properties).
  • Added AuditEvent about user becoming perun admin.
  • Check also large attributes previous value before
    performing update to prevent unnecessary checks
    and hooks when value doesn't really changed.
  • Allow specifying mail notification templates
    for preferred mail change and password reset
    in entityless attribtues (per namespace/language).
  • Extended Group object definition in CLI.
  • Fixed regex applied to elixirScopedAffiliations.
  • Autocreate required namespaced attributes, supported
    namespaces can be specified in perun.properties.
  • Added module for user:virt:eduPersonEntitlement which will
    gather eduPersonEntitlements from all users identities.
  • Resolve user:virt:loa attribute changes when UserExtSource
    is updated so that LDAP is updated correctly.
  • Removed duplicates in result of getGroupsMembersExcept*().

LDAPc

  • Both old and new LDAP connectors now remove members
    from the group, if their group status in perun is not active.
    Behavior for vo status didn't change.
  • Fixed handling DN of group names in new LDAPc.
  • New LDAPc will now push only valid member on re-initialization.
  • Added "loa" and "isCesnetEligible" attributes to the LDAP.
    LDAP schema must be updated before deploying this version!

GUI

  • Do not load jQuery anonymously in GUI to prevent
    bug in Safari browser blocking it.
  • Fix displaying wether group is authoritative for member synchronization.
  • Inner tabs cross button (top-right corner), will perform same default action
    as do Close and Done buttons do. Eg. refresh underlaying tab after members
    were added to group.
  • Fixed adding group member in GUI when user was already
    indirect member.

API

  • Added method to getSponsoredRichMembers() with attributes.
  • Extended getData() like methods which will automatically exclude
    expired members from the returned groups.
  • Added API methods get(Rich)GroupsWhereUserIsActive(),
    which returns users groups filtered by facility or
    resource they are assigned to and also where member
    is in VALID state for both VO and Group.
  • Added new method getRichGroupsAssignedToResourceWithAttributesByNames()
    with possibility to specify member and attrNames for member-group
    attributes.
  • Added possibility to specify entity ID for methods
    like is[Entity]Admin().

OTHER

  • Error reports from GUI can be directly send to mail address instead of
    RequestTracking system.
  • Perun gathers also entitlement and assurance attributes from IDPs.
  • Module for attribute user:virt:userOrganizations with mapping of
    VO names to user organizations (specified by member attribute).
  • Fixed RPC docs for sendPasswordResetLink.
  • Prevent possible duplicates in getAllowedUsers() when user was
    assigned through multiple resources.
  • Changed login namespace for lifescience-hostel
    registrations to BBMRI namespace.
  • Added CABINETADMIN role for publication management.

Release 3.5.0

11 Mar 10:29
v3.5.0
c3adb5a
Compare
Choose a tag to compare

Changelog (since 3.4.0)

CORE

  • We now use HikariCP instead of ApacheDBCP for DB connection management.
  • Fixed switching expired state for group expirations.
  • Implemented logic for group membership expiration notifications.
  • Added new perun-ldapc-ada module which will be used instead of
    current LDAPc in the future.
  • Fixed wrong using of namespace in defaultUnixGID attribute module.
  • Registrar now have configurable SMTP connection for
    sending notifications just like the core notification
    module.
  • Support multi-lang links in password reset notification.
  • Pass login-namespace in password reset notification links.
  • Ported changes for user:virt:eduPersonScopedAffiliations, now it
    takes affiliations also from group:def:groupAffiliations.
  • Removed support for user:virt:elixirBonaFideStatus, was replaced
    by new attribute user:def:elixirBonaFideStatus.
  • Auditer log messages are now stored and read as JSON and
    perun-engine component use instantiated classes to distinguish
    interesting messages.
    We will remove old DB table with custom serialized objects in
    future releases.
  • Reading data from DB based on large list of IDs was reworked
    to use SQL array instead of constructing long SQL with ids.
    This give us time-consistent performance on each such select.
    This change requires DB schema to be updated to version 3.1.52
  • Membership expiration calculation logic now uses Java 8 Date API.

GUI

  • Use locally sourced jQuery in administrative GUI
    instead of their CDN.
  • Added treshold for keepAlive checker in administartive
    GUI to prevent showing annoying pup-up on unreliable
    connections.
  • You can now store "reason" why member in VO was suspended.
  • Support to set new SELF_VO and SELF_PUBLIC rights on attribtues.
  • Password reset gui supports better theming and checks per login-namespace.

API

  • Added new API method getMemberRichGroupsWithAttributesByNames().
  • Support for paging in getAllRichGroupsWithAttributesByNames().
  • Added utils method to API get Peruns current time
    (utils/getPerunSystemTimeInMillis).
  • Allow force deletion of Facility.

OTHER

  • Lifescience hostel logic moved from login module to registrar module.
  • Fix usage of MemberGroupAttributeRowMapper in getRequiredAttributes().
  • Ommit auditing messages about deleted attributes, if none
    was really deleted.
  • We removed default loggin from PerunException. Each exception must be
    now explicitly logged in the code. As fallback specific logger was
    created, so we can still get logs the old way. This will be removed in
    future versions.
  • Methods to generate provisioning data are now in serializable
    transaction isolation to make sure generated data are consistent.
  • Added CLI tools to switch Users between normal, service and sponsored state.

Release 3.4.0

22 Jan 11:34
v3.4.0
c61b30e
Compare
Choose a tag to compare

Changelog (since 3.3.0)

CORE

  • Merged code for attribute values caching, which should greatly improve performance.
    It's disabled by default in this version and will be subject to further testing on each instance.
  • Attribute modules for determining group membership expiration
    from member_group, member_resource and user_facility context.
  • Fixed vo membership expiration calculation.
  • Fixed vo membership expiration notifications.
  • Prefer native language when sending pwd-reset link from GUI.
  • Allow password reset to random value for perun admins. PDF with password
    and generic text is returned. This is used by user-support. PDF template is configurable
    per namespace (can be any XHTML document).
  • Added attribute modules for storing reason, why member has been suspended.
  • All attribute modules can now listen to audit log messages (previously only virtual
    attributes could).
  • Remove blocked destinations from the list of destinations where perun will push data to.
  • Added new role - ResourceSelfService. Such user can assign or remove group from resource,
    if he's also group manager of the group.
  • Added new sub ActionTypes for the SELF roles, so some attributes can be read/written if user is
    related to the entity throught his vo membership or it supposed to be just public.
  • Support for lifescience-hostel login namespace.
  • Fixed group deletion when group was granting administrative role.
  • Allow facility managers to read group attributes of assigned groups.
  • Added modules for eduteams login namespaces (eduteams-acc-nickname, eduteams, fenix).

REGISTRAR

  • Fixed use-cases for Elixir, when user continues through multiple VOs forms.
  • Bigger and colorful continue button to make sure user don't miss it and doesn't close the browser.

GUI

  • Manage values of entitless attributes from GUI (visible to perun admins only).
  • Sort TaskResults by timestamp in reverse order (newer first).

OTHER

  • Upgraded to Spring Boot Starter parent 2.1.2 / Spring 5.1.4.
  • Perform CI tests on Ubuntu 16.04 and both JDKs (8, 11).
  • CLI: Added tool to copyResource (with improved performance on server side).
  • Cleanup parm names and order respecting attribute namespaces.
  • Fixed tests on newer HSQL DB, since there was a change in compatibility mode
    regarding create index SQL command.

Release 3.3.0

20 Nov 06:53
v3.3.0
c5fe016
Compare
Choose a tag to compare

Changelog (since 3.2.0)

CORE

  • Gather IdP and IdPs organzation name attributes.
  • Fixed comparison of TaskSchedule improves service provisioning planning.
  • Fixed JSON deserialization of RichMember when synchronizing two perun instances.
  • Upgrade to Spring 5.1
  • Hide create VO button in GUI is configured for specific instance.
  • Auto-create member:def:organization attribute.
  • Check input length of user titles.
  • Allow Facility deletion, even when blocked service exists.
  • Move VOMS group names and roles attributes into group-resource like attributes.
  • Fixed selecting UserExtSource attributes by their names.
  • Smart sort hostnames in GUI (hosts, destinations, task results).
  • Perun admin can switch between type of users: sponsored, service and normal users.
  • Initial support for new ways of auditing (each message is an object, stored as simple json in new table).
  • Support for custom template of notification send to user to reset password (by vo manager).

REGISTRAR

  • Registration module for eduTEAMS nickname.
  • Gather also isCesnetElegibleLastSeen attribute and use it in registration modules for Metacentrum and DU.
  • Updated BBMRI registration module.

GUI

  • Support for foreign proxies (show original identity IdP names) in registrar and profile.

API

  • Allow un/blocking all services on facility/destination.
  • Support for SCIM protocol in API.

OTHER

  • Fixed compatibility with Java 11.
  • Fixed running test on current Debian (broken OpenJDK).
  • Fixed overall log levels.
  • Add error message to listing of TaskResults for destination in CLI.

Release 3.2.0

24 Oct 09:20
v3.2.0
f72531e
Compare
Choose a tag to compare

Changelog (since 3.1.0)

CORE

  • Initial support for group membership expiration.
  • Support for entities with descriptions containing newlines in audit events and pushing to LDAP.
  • Added possibility to generate graph of attribute dependencies.
  • Recalculate attribute dependencies when new attribute is created.
  • Support for alternative login names passed from original IdP, collected in user attribute.
  • Fix failing on empty name when generating login.
  • Changed behavior of attribute modules for elixirBonaFideStatus and eduPersonScopedAffiliations.
  • Added method to get only direct members of Group.
  • Allow group synchronization of groups in hierarchy (only direct members are synchronized now).
  • Fixed equals on User,Candidate and Member objects.
  • Fixed SQL for batch processing of more than 1000 entities by their IDs.
  • Fixed getting facility by attribute value.
  • Fixed passing boolean to jdbc driver on Oracle DB.
  • Fixed setting From to MimeMessages in notifications.
  • Fixed escaping input in XML for MU password manager.

REGISTRAR

  • Fixed re-sending of registration notifications from application detail.
  • Extended registration form items content to exceed 4000 chars limitation.
  • Added support for group extension forms and workflow.
  • Fallback on english texts on registration form if native language is not properly set.

GUI

  • Fixed pre-filled mail selection pop-up is covered under other form items.
  • Do not evaluate HTML in user names.
  • User profile can have native and/or english descriptions for each attribute displayed on profile page.
  • Link for mail validation during registration can contain "target" param which will be used to redirect user on success.
  • Allow custom privacy policy link in admin gui footer.
  • Fixed loading default tabs for VO managers without VO.
  • Fix authorization resolving when opening group in realtion on group detail page.
  • Fixed loading of Groups from proper VO when copying registration form from other VOs/Groups.

API

  • Added method to get Facility or Resource attributes by names.
  • Added create methods for all base entities. They take specific params instead of entity instance itself.
  • Added getAllowedRichGroupsWithAttributes() method.
  • Added getUserExtSourceByExtLoginAndExtSourceName() method.
  • Added getResourcesWhereUser(Group)IsAdmin() method.
  • Fixed authorization for fillAttribute() method.
  • Added removeAttributes() for member, group and workWithUserAttributes flag.

OTHER

  • Added generic web-app to create own VO.
  • Added CLI to add/remove members sponsors.
  • Added CLI to manage attribute R/W rights.
  • Fixed javadoc and RPC API automatic generation, added missing object and examples.
  • Deleted all remaining ExecService mentions and usage from code.
  • To locally run perun we now use cargo maven plugin instead of tomcat7.
  • Updated Spring to latest version.

Release 3.1.0

10 Jul 14:22
v3.1.0
81db1cb
Compare
Choose a tag to compare

This is the first official release of Perun after many years of continuous development without official releases.