Sakai Collaboration and Learning Environment (CLE) 2.8

     

    Icon

    Sakai CLE 2.8 release dates:

    2.8.3 - 15 February 2013

    2.8.2 - 10 June 2012

    2.8.1 - 11 October 2011

    2.8.0 - 18 April 2011

     

    The Sakai Collaboration and Learning Environment (CLE) is a Java-based, service-oriented web application that provides a variety of capabilities supporting teaching and learning, portfolios, research, and ad-hoc project collaboration. The Sakai CLE is typically deployed using Apache Tomcat as its servlet container and scalability is achieved by running multiple instances of Tomcat in a clustered environment, each deploying a copy of the Sakai CLE. It integrates with a variety of external authentication services including CAS, Kerberos, LDAP, Shibboleth and WebAuth. A single database, usually MySQL or Oracle, provides a transactional store of information while file storage is typically delegated to NAS or SAN solutions. In most production settings, the Sakai CLE relies on a back-end student information system (SIS) to provide it with student and course information, which the Sakai CLE consults via provider APIs.

    The Sakai CLE 2.8 release builds on previous releases by refining and stabilizing the 2.x feature set. It offers dozens of new features and improvements to key areas like accessibility, internationalization, performance, and security.

    Icons are used throughout the release notes to highlight important points in the installation, configuration, build and deployment process. Below is a list of the icons you will encounter:

    (tick) Hints (info) Useful Information (warning) Caution (minus) Warning (thumbs up) Good practice (thumbs down) Bad practice

    The documentation is presented here for ongoing comment, correction, and clarification, so please use the "Add Comment" link at the bottom of any of these pages if you note errors, require further details or have tips to share.

    What's new

     Click here to expand...

    Highlights

    Among the many enhancements included in the Sakai CLE 2.8 release are:

    • Configurable URL shortening service
    • Numerous mobile portal UI improvements
    • Collapsible portal navigation menu
    • reCAPTCHA support for logins
    • Enhanced user profile options
    • Support for IMS BasicLTI outcomes
    • Respondus question import handling
    • Optional CKEditor implementation
    • Six new webservices
    • Persistent event logging for Quartz Scheduler jobs
    • Improved IMS BasicLTI external integration capabilities
    • Improved integration with external user providers (eg LDAP)
    • Updated language packs (Chinese, Dutch, French, Spanish, Portuguese, Turkish and Vietnamese.)

    For a complete listing of new features see the lists below.

    Portal

    Ticket

    Project

    Feature

    SAK-19827 - Add portal icon support for 3 Etudes tools Closed

    portal

    Adds portal icons for Etudes's Mneme, Melete and JForum tools.

    SAK-19646 - Leverage browser caching Closed

    portal

    Leverages browser caching opportunities.

    SAK-19156 - Add Capability for Tools to Request Maximized Mode Closed

    portal

    Adds ability for tools to request the maximum tool area for display purposes now that navigation menu can be collapsed (portal.allow.auto.minimize=true).

    SAK-19148 - Suggest Changing the Default timeoutDialogEnabled property to be "True" Closed

    portal

    Logout timer setting (timeoutDialogEnabled) is now enabled by default.

    SAK-19129 - Eliminate the Presence iFrame and Replace with jQuery.Ajax calls to retrieve the list of users Closed

    portal

    Eliminates Presence iframe and replaces with JQuery.Ajax calls.

    SAK-19089 - Ability to set a url for the gateway site Closed

    portal

    Adds ability to specify a URL (rather than a siteId) for the gateway page (gatewaySiteUrl=myurl).

    SAK-19061 - Add Link to the PDA Portal to the Gateway Page Closed

    portal

    Adds link to PDA portal on gateway page.

    SAK-19014 - Include tool CSS in the background portal document so JSR-168 tools can be styled Closed

    portal

    Includes tool css in background portal document so JSR-168 tools can be styled.

    SAK-18687 - Ability to collapse site navigation Closed

    portal

    Adds collapsible navigation menu (icons only). See also SAK-19193 - Change Default for Expand / Contract in the Portal and Improve Icons Closed .

    SAK-18468 - add reordering support to reference/library Closed

    skins

    Add FLUID reordering support.

    SAK-17160 - Move list of subsites into own section Closed

    portal

    Sub-sites in navigation menu are sectioned separately from a site's tool list and each sub-site is assigned an icon.

    SAK-16926 - Report Kernel version in portal footer Closed

    portal

    The Kernel version can now be listed in the footer. See also KNL-546 - Add kernel build time to version file Closed , KNL-546 - Add kernel build time to version file Closed .

    SAK-16484 - Session timeout poller inaccurately checks if the current session is authenticated Closed

    portal

    Implements Javascript routine to more accurately poll status of user session.

    SAK-15653 - Add a tinyurl implementation to make sending URLs in emails etc simpler. Closed

    portal

    Render menu links to "hidden" tool pages in italics and with an opacity of 0.7.

    SAK-12841 - Turn the portal/xlogin page into a vm template Closed

    portal

    portal/xlogin page converted to a vm template.

    SAK-2991 - Exit options should exist from the Invalid Login page Closed

    portal

    Cancel button added to (xlogin) login page.

    Mobile/PDA Portal

    Ticket

    Project

    Feature

    SAK-20332 - allow hide of synoptic tools in mobile portal Closed

    portal

    Added ability to hide synoptic tools.

    SAK-20330 - add tool icons to mobile site/tool list Closed

    portal

    Added tool icons to help distinguish between site and tool lists.

    SAK-20053 - distinguish in mobile portal between sites and tools Closed

    portal

    Adjust .css to distinguish between sites and tools in mobile portal.

    SAK-19491 - Mobile skins need updating Closed

    portal

    Mobile .css skins updated.

    SAK-19275 - add ability to insert some markup via site property into specific site Closed

    portal

    Since 2.7.0 the standard portal has (SAK-15097) the ability to insert some markup on a site-by-site basis via a site property (sakai:htmlInclude). This has been ported to the PDA portal in such a way that the same site can (if needed) contain a different markup include as the standard portal.

    SAK-19179 - PDA changes for 2.8 Closed

    portal

    PDA changes for 2.8: breadcrumbing simplified; additional rendering capabilities added for devices that adhere to the following @media selector: "@media screen and (max-device-width: 480px)"; .css trim and ellipsis provided for site titles that go over the width of the viewport; css3 selectors used for compatible devices in order to differentiate items in the breadcrumb; <meta /> tag modified in pda.vm to make changes in orientation smoother (portrait/landscape); modified how links to child sites are displayed (passing control over to the css); moved strings from pda.vm template to bundle; and changed how links in the site menus are rendered (make entire block clickable) and styled in order to make them more in accordance to practice.

    SAK-18800 - Opt out of automatic forward to PDA portal Closed

    portal

    Added "opt out" link in the /portal/pda footer in order to forward user to portal/site (i.e., "classic view").

    SAK-18720 - Mobile portal - Autodetect device type and forward to proper handler Closed

    portal

    Auto-detect mobile devices and forward to /portal/pda; otherwise forward to portal/site (desktop/laptop access).

    Tools

    Ticket

    Project

    Feature

    SAK-12489 - Allow captcha support for new account signups. Closed

    account

    Added recaptcha support for new account signups.

    SAK-8005 - Announcements should allow the author to specify the order Closed

    announcements

    Authors can now change display order of announcements.

    SAK-18710 - Add notification history in the edit view of the announcement. Closed

    announcements

    Notification history added.

    SAK-18764 - add announcement API support in Entity Broker Closed

    announcements

    entitybroker support added.

    SAK-19814 - register Announcement tool as group-aware when starting PermissionHelper Closed

    announcements

    Announcements tool is now registered as group-aware when starting PermissionHelper.

    SAK-20074 - Accessibility: List Navigator Buttons in Announcements Not Announced Meaningfully by Screen-Readers Closed

    announcements

    Accessibility: list navigator buttons provided with appropriate contextual text labels in order to render them meaningful to Screen-Readers. See also SAK-20073 - Accessibility: List Navigator Buttons in Assignments Not Announced Meaningfully by Screen-Readers Closed .

    SAK-18752 - Provide a way to customize letter grades in the Assignments tool Closed

    assignments

    Letter grades now customizable (assignment.letterGradeOptions).

    SAK-19119 - email manifest of archive to site owner of submission of assignment Closed

    assignments

    Instructors now provided with a manifest of archives uploaded by students (*.zip only so far).

    SAK-19816 - register Assignment tool as group-aware when starting PermissionHelper Closed

    assignments

    Assignments tool is now registered as group-aware when starting PermissionHelper.

    SAK-18076 - allow instructor to specify options for Assignment tool default page, e.g. show no assignment, but do search or other filters first Closed

    assignments

    Allows instructor to specify options for Assignment tool default page (e.g., show no assignment) but do search or other filters first.

    SAK-24033 - BLTI should auto-register its events for SiteStats Closed

    basiclti

    Now auto-registers events for use by sitestats.

    SAK-24183 - Add Ability for External Basic LTI Tools to Set Grades in Sakai Closed

    basiclti

    Adds ability to set grades in the Sakai CLE from an external tool using web services. Disabled by default (basiclti.outcomes.enabled=false).

    SAK-24026 - Please Make Basic LTI Handle Multiple Placements Resolved

    basiclti

    Permits multiple placements of basiclti in a given context (e.g., site).

    SAK-24029 - Add feature to open Basic LTI tool in a new window Closed

    basiclti

    Adds ability to open a basiclti tool in a new window.

    SAK-24012 - Support the ext_lms feature in Basic LTI Closed

    basiclti

    Adds support for the ext_lms feature in IMS Basic LTI permitting basiclti to know which LMS it is dealing with so it can tune it's tool UI appropriately.

    SAK-24053 - Give the User an Option To Indicate if they Want the LTI Portlet to minimize Portal Navigation Closed

    basiclti

    Adds a checkbox that provides option to minimize the portal navigation menu after a launch occurs. See also SAK-23948 - Request Maximum Tool Area from the Portal when launching an external tool Closed .

    SAK-24044 - Add Support for Basic Outcomes and Settings Service Closed

    basiclti

    Added support for basic outcomes and settings service. This change alters the outcomes service to reflect the draft of the basic (as compared to simple) outcomes service and adds a per-placement settings service. Disabled by default (basiclti.outcomes.enabled=false).

    SAK-24059 - Implement IMS BLTI Context Memberships Service Closed

    basiclti

    Implemented the Context Memberships Service as described in the IMS GLC Basic Learning Tools Interoperability Extensions Recommended Practice. This allows an external tool (if granted proper permissions) to retrieve a course roster for the course that they were launched from.

    SAK-24054 - Add Support for the IMS BLTI ext_resource_link_content extension Closed

    basiclti

    Added support for the IMS Basic LTI ext_resource_link_content extension. This allows the launch to specify a URL that contains resource content. Initially simply a field in the configuration dialog, future work will permit basiclti launches from a resource handler (e.g., the way to send the URL of the current resource that BLTI is being launched from), allowing the launching of a SCORM object with an external SCORM player or perhaps a QTI2 test engine and handing the player or test engine the actual content to be played.

    SAK-24184 - Add ext_sakai_provider_eid param to ProviderServlet so that external consumers can pass an eid instead of a userId Closed

    basiclti

    Added parameter ext_sakai_provider_eid so that an external consumer can pass an eid instead of a userid.

    SAK-17523 - Add a RESTful way of retrieving new chat messages for a channel Closed

    chat

    Adds RESTful way of retrieving new chat messages for a channel.

    SAK-19818 - register Resources tool as group-aware when starting PermissionHelper Closed

    content

    Resources tool is now registered as group-aware when starting PermissionHelper.

    SAK-12800 - Allow emails sent to mail archive address to be flagged as to be stored in archive, but not forwarded on to other site members Closed

    email-archive

    Site owners can choose to forward to site members or simply archive emails sent to the site email address.

    SAK-18532 - Allow sender to be specified per template Closed

    email template service

    Sender address can now be specified in a template.

    SAK-17637 - Make loading/updating of templates a part of the EmailTemplateService Closed

    email template service

    Adds template loading/updating.

    SAK-18589 - Sort gradebook by category average Closed

    gradebook

    Adds sorting for categories by name, average, weight. Category sorting also added to "roster" and "summary" pages.

    SAK-17943 - Add edu-services scenarios for saving assignment with trailing whitespace to unit tests Closed

    gradebook

    Adds edu-services scenarios for saving assignment with trailing whitespace to unit tests.

    SAK-19510 - Add <sakai.hybrid.version> in the master pom; add variables to login and provider poms Closed

    hybrid

    Added hybrid-util dependency to login and provider projects in order to simplify adding the full hybrid project to Sakai 2.8.

    SAK-20033 - Add evict functionality to memory tool Closed

    memory

    Added cache evict item functionality to Memory tool.

    SAK-24610 - Allow sorting of forum threads Closed

    msgcntr

    Forum threads are now sortable.

    SAK-24642 - Start and End dates on Forums and Topics Closed

    msgcntr

    Added ability to set open/close dates for discussion boards,forums and topics.

    SAK-24641 - Preview message before sending Closed

    msgcntr

    Added ability to preview message before sending.

    SAK-24644 - Extend EntityBroker for MSGCNTR Closed

    msgcntr

    entitybroker support extended.

    SAK-24628 - Feature Request: Please allow an institution to set a default preference for the "Watch" notification email functionality in Forums 2.7 Closed

    msgcntr

    Added the ability to configure the default email behavior for the "Watch" functionality in Forums (mc.notificationDefault).

    SAK-24640 - Option to save a draft of the message Closed

    msgcntr

    Option added to permit authors to save a message draft.

    SAK-24607 - Rewrite findNumModeratedTopicsForSiteByUserByMembership Closed

    msgcntr

    Query findNumModeratedTopicsForSiteByUserByMembership rewritten in order to improve performance.

    SAK-24608 - Rewrite findAllPendingMsgsByContextByMembership Closed

    msgcntr

    Query findAllPendingMsgsByContextByMembership rewritten in order to improve performance.

    SAK-24609 - Rewrite synoptic queries to separate permissionLevelId query from permissionLevelName Closed

    msgcntr

    Synoptic queries permissionLevelId and permissionLevelName rewritten in order to improve performance.

    SAK-18831 - add configuration option to turn tool categories off in xslt charon portal Closed

    osp

    Adds configurable property that turn off tool categorizations in the navigation menu in the xsl Portal (xslPortal.displayToolCategories=false).

    SAK-18559 - Add support for email notification preferences in Matrices and Wizards Closed

    osp

    Adds support for email notification preferences in Matrices and Wizards.

    SAK-18013 - Integrate Assignments2 in with the OSP Matrix helper Closed

    osp

    Adds Gradebook2 integration support to OSP Matrix helper.

    SAK-17564 - Support display of Public Portfolios within a site Closed

    osp

    Adds a new "Public Portfolios" tab.

    SAK-26550 - Support for import & export Closed

    polls

    Added import/export capabilities so that polls can be duplicated across sites, imported from other sites and exported as part of Site Archive.

    SAK-26462 - Cannot access poll options through /direct when poll is public and user isn't authenticated. Closed

    polls

    Anonymous user can now access public polls via /direct. See also SAK-26491 - /direct/poll/{id}.json doesn't allow authenticated users access to a public poll. Closed for authenticated user access to polls via /direct.

    SAK-26486 - Polls tool doesn't support voting on polls which allow multiple answers through /direct Closed

    polls

    Now supports poll voting on multiple options through /direct.

    SAK-18855 - Add option to poll to allow public voting on individual polls Closed

    polls

    Adds option to allow public voting on individual polls.

    SAK-19130 - Change Default for Presence in My Workspace Closed

    presence

    Presence is now turned off in My Workspace (display.users.present.myworkspace=false).

    SAK-27266 - Add private messaging Closed

    profile2

    Adds private messaging.

    SAK-27133 - Allowing using official photos for profile2 Closed

    profile2

    A user's official institutional image can now be accessed and used as their profile image. Disabled by default. (profile2.official.image.enabled=false, profile2.official.image.source=url, profile2.official.image.attribute=jpegPhoto).

    SAK-27091 - Add picture gallery page Closed

    profile2

    Adds an image gallery along with privacy settings. Users can select their profile image from the gallery.

    SAK-27148 - Add kudos widget Closed

    profile2

    Adds "kudos" ratings widget that provides scores based on profile completeness. Runs as a cron job using Job Scheduler. See also SAK-27199 - add Preferences and Privacy settings for Kudos widget Closed .

    SAK-27041 - Add "Business Information" panel to profile Closed

    profile2

    Adds a business/company information panel to each profile.

    SAK-18864 - Create Persistent Event Logs For Job Scheduler Closed

    quartz scheduler

    The quartz scheduler event log has been replaced with a persistent, database-backed event log. The log combines Quartz-generated events and any logging the job developer chooses to include in the event log. This prevents the need to skim through Tomcat logs to find job execution errors or info statements and permits sys-admins to review job execution event logs across a cluster.

    SAK-19178 - Schedule Event Log Purge for Job Scheduler During Initial Startup Resolved

    quartz scheduler

    A default job has been added which will purge all but the last X days of events from the log (scheduler.loadjobs=init/true/false (e.g., on first start up (default), on restart, never). This purge job must be scheduled in order to control the size of the event log.

    SAK-13696 - Provide interface to JobDataMap to set Quartz job properties Closed

    quartz scheduler

    Update tool providing JobDataMap and trigger interfaces.

    SAK-18802 - Add a 'pre' macro Closed

    rwiki

    Added Radeox <pre> macro.

    SAK-5279 - No "Edit" link in public view when set to Public Update = yes Closed

    rwiki

    Authenticated users can now edit pages marked publicly editable.

    SAK-27636 - Optimize indexing batch size and frequency Closed

    rwiki

    Optimize indexing batch size and frequency. Previously, the search indexing formula could result both in index rebuilds running slowly and running too frequently on idle nodes. The formulas where tweaked for better max batch sizes for large rebuilds (e.g., 1 million queued docs) and appropriate minimum indexing intervals (e.g., 30-60s when there are only a few pending docs, e.g., < 100).

    SAK-19817 - register Calendar tool as group-aware when starting PermissionHelper Closed

    schedule

    Calendar tool is now registered as group-aware when starting PermissionHelper.

    SAK-18997 - Add support for Account Validator Closed

    site info

    Added the account validation tool in Site-manage-participant-helper. Activated via a property; default behavior = false (siteManage.validateNewUsers = true/false).

    SAK-18978 - When adding user to site, option to add them as inactive Closed

    site info

    Users can be added to sites with a status of inactive.

    SAK-18653 - add a 'select all' button to the main site info page to select all users Closed

    site info

    Added a "Select all" checkbox to simplify the task of selecting all users.

    SAK-18462 - Ability to restrict joiner role selection to non-maintainer roles Closed

    site info

    Option added that restricts the joiner role selection offered in Site Info / Manage Access only to roles which do NOT have site.upd permission. A new property siteinfo.prohibited_permission_for_joiner_role has been added for configuring a list of permissions that the joiner role should not possess. If not included the default is site.upd.

    SAK-688 - Better UI for site access options in worksite setup Closed

    site info

    Worksite Setup UI for site access options improved.

    SAM-663 - QTI import of Respondus-generated questions Closed

    test and quizzes

    Added ability to import questions from Respondus.

    SAM-666 - Allow instructors to select a feedback option that would show students their overall score only Closed

    test and quizzes

    Added ability to allow instructors to select a feedback option that would show students their overall score only.

    SAM-756 - Character limit of 4000 in Test/Quizzes - QUICK question. Resolved

    test and quizzes

    4000 character limit lifted on questions, short answers and feedback.

    SAM-772 - Allow instructors to enter zero score for unsubmitted assessments Resolved

    test and quizzes

    Added ability to allow instructors to enter a zero score in the gradebook for unsubmitted assessments.

    SAM-801 - Allow student use of rich-text editor (FCKeditor) Resolved

    test and quizzes

    Added ability to use FCKEditor for composing short answers.

    SAM-862 - The ability to choose "Average" for the "Recorded Score if Multiple Submissions" Verified

    test and quizzes

    Added ability to choose "average" score along with last score or highest score for "recorded score if multiple submissions."

    SAM-863 - Add View All Submissions (With Average) to Student View of Submitted Assignments Resolved

    test and quizzes

    Added view all submissions with average) to student view of submitted assignments.

    SAM-869 - When sharing pool with more than 1 level of sub-pools, Samgio only shows two levels - the question pool level, and the first sub pool level Closed

    test and quizzes

    Question pool with sub pools tree structure now accurately displayed.

    SAM-921 - Improvement: No Assessment Templates/Types Closed

    test and quizzes

    Displaying Assessment templates/types is now a configurable option (samigo.showAssessmentTypes=true/false (default=true)).

    SAM-942 - Add method to allow importing QTI to Samigo via Web services. Resolved

    test and quizzes

    Method added allowing QTI test imports via web services.

    SAM-971 - Make Linear Access Logic Consistent Verified

    test and quizzes

    Improve linear access logic to ensure that test takers are returned to the last question encountered if test is interrupted.

    SAK-10416 - Allow custom implementations of search on external user providers Closed

    user membership

    Allows custom implementations of search on external user providers.

    SAK-19369 - Merge AnnotatedUrl- an iframe tool to trunk Closed

    web content

    Added Annotated Url (sakai.iframe.annotatedurl), another type of iframe tool developed at the University of Michigan. The tool has a link to a target URL that is configured as a tool property.

    CKEditor

    Ticket

    Project

    Feature

    SAK-20296 - Upgrade CKEditor to 3.5.2 to support IE9 Closed

    editor

    Upgraded CKEditor to version 3.5.2.

    SAK-17880 - Explore upgrade to CKEditor Resolved

    editor

    Adds CKEditor support.

    Kernel

    Ticket

    Project

    Feature

    KNL-328

    kernel

    Adopted a more secure format for storing passwords.

    KNL-375 - RequestFilter - Improve Error Information on Servlet Exception Closed

    kernel

    Improved error messaging for RequestFilter servlet exceptions.

    KNL-383 - BaseContentResource should check for null objects Closed

    kernel

    Improved BaseContentResource NULL checking.

    KNL-403 - Promote manually added users to provided Closed

    kernel

    Added check to ensure that if a user is added manually to a course site (e.g., non-provided) and the user subsequently appears in a provider group with the same role, then the user's site membership will be promoted to provided.

    KNL-404 - There's no warning if email is not set up Closed

    kernel

    BasicEmailService now issues warning in logs if send mail is attempted with no SMTP server defined (e.g., smtp@org.sakaiproject.email.api.EmailService).

    KNL-413 - Improve Unit tests re special chars in ContentHosting Closed

    kernel

    Added improved ContentHostingService unit tests with an emphasis on special characters and UTF8.

    KNL-420 - addMember should throw exception for null role rather than fail with warning Closed

    kernel

    BaseAuthzGroup now throws exception instead of failing silently if addMember is called without a supplied role.

    KNL-428 - add isVisible method to determine tool visibility in a site for a user Closed

    kernel

    Added new ToolManager isVisible method to permit checking on whether a tool is visible to the current user in this site, depending on permissions required to view the tool.

    KNL-435 - Mark all static covers deprecated. Closed

    kernel

    All Kernel static covers marked as deprecated.

    KNL-447 - Support exceptions to dynamic tool localization Closed

    kernel

    Added exception-handling support for dynamic tool localization.

    KNL-467 - Sorting based on name should be cases insensitive. Closed

    kernel

    ContentHostingCompartor sorting on name is now case insensitive.

    KNL-497 - Method to check if a user is active, ie 'online' Closed

    kernel

    Adds new UsageSessionService methods to check if a user is active, to retrieve a user's most recent active session or a list of user's most recent active sessions.

    KNL-499 - Allow ability to turn off automatic "promotion" to provided user Closed

    kernel

    Adds ability to turn off automatic "promotion" to provided user that was implemented in KNL-403 - Promote manually added users to provided Closed .

    KNL-500 - ability to retrieve the time of an Event. Closed

    kernel

    Adds a new Event getEventTime method in order to return the time of an event.

    KNL-541 - add generics to SecurityAdvisor stack Closed

    kernel

    Adds generics to SecurityAdvisor.

    KNL-542 - Improve SecurityAdvisor API to prevent missuse Closed

    kernel

    Improved SecurityAdvisor API to better handle push/pop stack processing.

    KNL-563 - apply kernel changes for dynamic resource loader Closed

    kernel

    Added support for dynamic resource loader.

    KNL-565 - Replace use of StringUtil.trimto null with common-lang method Closed

    kernel

    Replace home-grown StringUtil.trimtoNull method with Apache commons-lang StringUtils.trimToNull.

    KNL-570 - Add sakai property to set sendpartial Email property Closed

    kernel

    BasicEmailService mail.*.sendpartial can now be set to either true or false (default=true).

    KNL-572 - allow access rights holders (on project sites) to post to email lists by default. Closed

    kernel

    Project site members with "access" role can now post messages to site by default.

    KNL-580 - Utility to extract a manifest from a zip file Closed

    kernel

    Utility method getZipManfest added to return a list of files in a *.zip archive together with each file's size.

    KNL-585 - Allow tools to register their own email notification preferences Closed

    kernel

    Tools are now permitted to register their own email notification preferences.

    KNL-589 - Automatic file encoding detection Closed

    kernel

    Added automatic file encoding detection.

    KNL-662 - Add memory service method to evict expired Items Closed

    kernel

    Added new memory service evictExpiredMembers method to evict expired objects from in-memory caches.

    KNL-667 - Add generics to resourceloader Closed

    kernel

    Added generics to ResourceLoader.

    KNL-669 - Add new string in UsageSessionService for a container login Closed

    kernel

    Added user.login.container to the UsageSessionService in order to permit institutions to track container logins (Shibboleth, CAS, etc.) vs direct, guest logins.

    KNL-671 - No method to get users locale Closed

    kernel

    Added method to get User's locale.

    SAK-10416 - Allow custom implementations of search on external user providers Closed

    kernel

    Extends the UserDirectoryService to permit searching of externally provided users and the retrieval of all aliases matching the

    Entity Broker

    Ticket

    Project

    Feature

    SAK-18879 - Add version.kernel to eb provider Closed

    entitybroker

    Adds adds version.kernel to ServerConfigEntityProvider.

    SAK-18643 - Add the ability to specify the depth of object graph serialisable to JSON Closed

    entitybroker

    Adds ability to specify the depth of a serializable object graph to JSON (entitybroker.maxJSONLevel; range 5-25.). Previously hard-coded to a depth of "7" in reflectutils JSONTranscoder.

    SAK-18276 - Add the ability to retrieve the list of groups for a site. Closed

    entitybroker

    Adds the ability to retrieve the list of groups for a site.

    SAK-18103 - Add a custom action to the site provider, enabling the retrieval of user permissions. Closed

    entitybroker

    Adds a custom action to the site provider, enabling the retrieval of user permissions (e.g., call urls like: /direct/site/SITEID/userPerms/calendar.json to retrieve the calendar permissions for the currently logged in user. Leave off the PREFIX (e.g., calendar) in order to retrieve all the current user's permissions for a specified site.

    SAK-14256 - Add functionality to support search to EB Closed

    entitybroker

    Adds searching via REST; entitybroker entities can now implement searchable and be added to search indexing.

    Other services: common, edu-services, shortenedurl, content-review (api)

    Ticket

    Project

    Feature

    SAK-17821 - Add additional fields to SakaiPerson Closed

    common

    SakaiPerson user profile information extended (staffProfile, universityProfileURL, academicProfileURL, publications, business_biography).

    SAK-19155 - CLONE -Allow the retrival of localized status message Closed

    content-review

    Retrieve localized message status from ContentReviewService.

    SAK-19053 - CLONE -Add Error Status Code to ContentReviewItem Closed

    content-review

    ContentReview item error status codes can now be stored and retrieved.

    SAK-19080 - Sakai 2.8 : Record User Entered Grades : edu-services/gradebook-service Closed

    edu-services

    User-entered grades now recorded. See also GRBK-736 - Prepare For Sakai 2.8: Record User Entered Grades (This JIRA doesn't not address the GB2 implementation of this feature) Closed .

    SAK-19028 - New Method in CourseManagement Service Closed

    edu-services

    New method added to the CourseManagementService retrieve all currently active course offerings in a canonical course.

    SAK-24227 - Make abstract interface that is pluggable with a variety of URL shortening methods. Closed

    shortenedurl

    Provides a configurable shortening URL service that includes caching. Developers simply implement the ShortenedUrlService API, wire up their implementation code as a Spring bean and choose a URL shortening service such as the built-in RandomisedURLService or an external service such as Bit.ly (e.g., shortenedurl.implementation=org.sakaiproject.shortenedurl.api.RandomisedUrlService). It will then be used preferentially. See https://confluence.sakaiproject.org/display/SHRTURL/Home for more details. See also SAK-15653 - Add a tinyurl implementation to make sending URLs in emails etc simpler. Closed .

    Web services

    Ticket

    Project

    Feature

    SAK-18923 - New method needed: addConfigPropertyToPage Closed

    web services

    Adds new web service addConfigPropertyToPage in order to set to set the 'is_home_page:true' page property when adding a Home page via web services.

    SAK-18664 - Create binary assembly for webservices Closed

    web services

    Binary assembly now generated.

    SAK-18254 - new web service - getAllSitesForUser to include my Workspace Closed

    web services

    Adds new web service getAllSitesForUser to include my Workspace as well as all other sites.

    SAK-18236 - new web service signature for getUserId to get the userId associated with the session Closed

    web services

    Adds new web service signature for getUserId in order to retrieve userId associated with the session.

    SAK-18191 - new web service signature for getPagesAndToolsForSite to allow userid to be specified Closed

    web services

    Adds new web service signature for getPagesAndToolsForSite to allow userid to be specified.

    SAK-18124 - new web service - getPagesAndToolsForSite Closed

    web services

    Adds new web service getPagesAndToolsForSite in order to retrieve an XML document of all pages on a site as well as all tools on each page.

    SAK-18119 - new webservice - getUserId Closed

    web services

    Adds new web service to get a user's ID, given their eid.

    SAK-18115

    web services

    Adds new web service to allow html inline property to be set from resources tool / web services.

    SAK-14321 - new web service - copyResources Closed

    web services

    Adds new web service copyResources copy the resources from one site to another.

    Configuration, localization

    Ticket

    Project

    Feature

    SAK-19312 - Add recaptcha properties Closed

    config

    Added recaptcha properties for account. See also SAK-12489 - Allow captcha support for new account signups. Closed , SAK-19267 - Rename properties in SAK-12489 (Captcha for new user accounts) Closed .

    SAK-17615 - add text/x-tex to filetypes Closed

    config

    Added text/x-tex to filetypes.

    SAK-15037 - Create internationalization mechanism to avoid duplication and de-synchronization of text shared across tools Closed

    config

    Created shared i18n properties in /config project in order to minimize duplication and de-synchronization of text shared across multiple tools.

    Language updates and additions

    Release

    Language

    Country

    locale

    2.8.0

    Catalan

    Spain

    ca_ES

    2.8.0

    English

    United States

    en_US

    2.8.0

    French

    France

    fr_FR

    2.8.0

    Japanese

    Japan

    ja_JP

    2.8.0

    Portuguese

    Portugal

    pt_PT

    2.8.0

    Russian

    Russia

    ru_RU

    2.8.0

    Spanish

    Spain

    es_ES

    Providers

    Ticket

    Project

    Feature

    SAK-20225 - CLONE - Add memory service method to evict expired Items Closed

    providers

    Added method to Memory service in order to evict expired cache items.

    SAK-19821 - Add new groupProvider method to group providers Closed

    providers

    Added new groupExists method to GroupProviders.

    SAK-17816 - Add jpegPhoto mapping to JLDAP provider/UserDirectoryService Closed

    providers

    Added jpegPhoto mapping to the JLDAP provider; if set, this will populate a user object property with the field from the directory.

    Release support

    Ticket

    Project

    Feature

    SAK-20094 - Package demo with Tomcat 5.5.33 Closed

    pack

    Package up demo with Tomcat 5.5.33.

    SAK-20055 - Create separate antrun tasks to generate demo, binary and source artifacts Closed

    pack

    Create separate antrun tasks to generate demo, binary and source artifacts.

    Documentation

    Ticket

    Project

    Feature

    SAK-19879 - Update Skin Documentation for 2.8 Closed

    skins

    Updated skin documentation for Sakai CLE 2.8.

    SAK-19476 - Update Webdav instructions for 2.8 Closed

    webdav

    Updated webdav instructions for Sakai CLE 2.8.

    Conversion scripts

    Upgrade Step

    MySQL

    Oracle

    Notes

    2.8.0

    sakai_2_8_0_mysql_conversion.sql

    sakai_2_8_0_oracle_conversion.sql

     

    2.8.0

    sakai_2_8_0_mysql_hbm_indexes.sql

    sakai_2_8_0_oracle_hbm_indexes.sql

    Starting up sakai-2.8.0 in order to populate an empty database (auto.ddl=true) can result in certain tools relying on Hibernate 3.2.7.ga to generate indexes to fail to do so. Check database and then run this script to add missing indexes.

    External library upgrades

    Ticket

    Project

    Feature

    KNL-651 - Data serialization issue - file_path Awaiting Review

    kernel

    Upgraded to maven-surefire-plugin 2.7.1.

    KNL-615 - Update release plugin to version 2.1 Closed

    kernel

    Upgraded to maven-release-plugin 2.1.

    KNL-583 - Upgrade to Spring 2.5.6.SEC02 Closed

    kernel

    Upgraded to Spring 2.5.6.SEC02.

    KNL-529 - Upgrade to release plugin 2.0 Closed

    kernel

    Upgraded to Apache commons-collections 3.2.1, commons-fileupload 1.2.2, commons-math 2.1 and log4j 1.2.16.

    KNL-430 - Upgrade to Commons Lang 2.5 Closed

    kernel

    Upgraded to Apache commons-lang 2.5.

    KNL-374 - Upgrade log4j in common/lib to more recent version Closed

    kernel

    Upgraded to log4j 1.2.15. Superceded by KNL-529 - Upgrade to release plugin 2.0 Closed .

    KNL-286 - Upgrade jUnit to 4.7 Closed

    kernel

    Upgraded to JUnit 4.8.2.

    SAK-19011 - Investigate upgrading Pluto version Closed

    portal

    Upgraded to Pluto 1.1.7.

    SAK-18761 - upgrade WURFL definitions to 2.0.18 Closed

    portal

    Upgraded WURFL definitions to 2.0.18.

    SAK-18622 - Upgrade org.apache.httpcomponents.HttpClient to version 4.0.1 Closed

    login

    Upgraded org.apache.httpcomponents.HttpClient to 4.0.1.

    SAK-18214 - Upgrade to Velocity 1.6.x Closed

    velocity

    Upgraded to Velocity 1.6.3.

    SAK-17553 - Add trimpath.js to the library. Closed

    js

    Adds trimpath.js to /reference/library.

    SAK-27643 - Upgrade to Lucene 2.9.4 Closed

    search

    Upgraded full-text search engine library to Apache Lucene 2.9.4.

    SAK-27654 - Upgrade digesting dependencies Closed

    search

    Upgraded digesting libraries to Apache pdfbox 1.3.1, Apache Poi 3.7 and Apache Tika 0.8.

     

    System requirements

    Operating system (OS) choices

    The Sakai CLE is OS neutral. It is typically run on any of the numerous Linux distributions such as CentOS, Debian GNU/Linux, Fedora, Gentoo Linux, Red Hat Enterprise Linux (RHEL), SuSe Linux, Ubuntu but is also run on Mac OS X server, Microsoft Windows and Sun Solaris. Operating systems other than Linux are not nearly as well tested, and all of the community QA servers are running Linux, so this is generally the recommendation.

    Examples:

    Cerritos College, Windows 2003.
    Georgia Tech, RHEL.
    Indiana University, RHEL.
    Mount Holyoke College: Debian GNU/Linux.

    Oxford University: Debian GNU/Linux.
    Rutgers University: Sun Solaris.
    University of California, Berkeley: Sun Solaris.
    University of Cape Town: SuSe Linux.

    University of Florida: RHEL.
    Universidad de Murcia: CentOS.
    University of Virginia: Fedora.
    Virginia Tech: Ubuntu.

    Java

    Oracle's Sun Java SE 6, a.k.a Java 1.6, is the preferred version to use with the Sakai CLE. Certain files, such as *.jsp and *.jws, require compilation so downloading and attempting to use only the run time environment (JRE 6.0) will not suffice. Mac OS X 10.6 (Snow Leopard) includes the full version of Java SE 6 so Mac users do not need to install Java. If you find Sun's version and naming conventions confusing, see Sun Java SE Naming and Versions for an outline of their practices.

    Oracle's Sun Java J2SE 5.0 (a.k.a Java 1.5) has completed the EOL process and is no longer supported. If are still running Java 1.5 please note that security vulnerabilities exist in JDK/JRE 5.0 updates 1.5.0_17 and earlier.

    For Sakai 2.9 OpenJDK and JDK 7 are supported along with JDK 6. Previous releases would not work with OpenJDK.

    Application server choices

    The Sakai Community is overwhelmingly an Apache http/Apache Tomcat user community and the Sakai CLE is at home in such an environment. Some Several schools run their Tomcats with Windows IIS and nginx proxies without issue. Since Sakai CLE 2.7.0 a Websphere module was included in the release in order to facilitate deployment to a Websphere/Db2 production environment; however, support has waned and the Websphere option is currently considered deprecated. A few schools such as Hong Kong University of Science and Technology and the Universidad de Guadalajara report deploying Sakai on JBoss.

    Icon
    Sakai 2.8.0 and previous releases require Tomcat 5.5 out of the box but can be configured in custom builds to run under Tomcat 7. Tomcat 7 is the requirement for running Sakai 2.9.0+. There are some changes to the Tomcat configuration required to get Sakai to startup in the source or binary form under Tomcat 7. Please see this page for more information!

    Database choices

    Sakai CLE production installations typically run either Oracle 10g/11g or MySQL 5.0/5.1. Support for IBM Db2 was added for the Sakai CLE 2.7.0 release but for 2.8.0 DB2 conversion scripts were not updated or tested and are currently considered deprecated. A demo version of Sakai includes HSQLDB; it should never be deployed in production.

    It should be noted that Sakai is not limited to these database choices and integration with other RDBMS systems is not difficult. In the past at least one installation used Microsoft SQL Server while requests for PostgreSQL integration are occasionally raised on the Sakai developers list. However, to date no one in the Sakai Community has stepped forward to support alternatives to either Oracle or MySQL, a prerequisite for adding additional database options to the release.

    Australian National University, MySQL 5.1
    Indiana University, Oracle 10g
    Oxford University, MySQL 5.0

    Stanford University, Oracle 10g
    Texas State University, San Marcos, MySQL 5.1
    University of Cape Town, MySQL 5.1

    University of Florida, Oracle 11g
    University of Virginia, MySQL 5.0
    University of Michigan, Oracle 10g
    Virginia Tech, Oracle 11g

    Clustering, file storage and load balancing strategies

    A typical Sakai CLE cluster is comprised of one or more application servers running one or more instances of Tomcat 5.5 operating either in standalone mode or behind the Apache HTTP 2.2 web server. Each Tomcat instance runs a full copy of the Sakai CLE. The cluster is backed by a single database providing a transactional store of information. Storing binary content outside the database is a configurable option in Sakai and highly recommended from a performance standpoint. Most Sakai schools with sizable user populations opt for network-attached storage (NAS) or storage area network (SAN) solutions. Load balancing is provided by Apache (using mod_jk, mod_proxy_balancer or mod_proxy_ajp) or dedicated hardware solutions such as F5 BIG-IP, NetScaler or Zeus.

    Three examples should suffice:

    University of Cape Town
    User base: 27,000+
    Cluster: six Dual Xeon 3.6 GHz 8G RAM, 64-bit SuSe Linux (4 x physical servers, 2 x VMWare servers).
    App servers: Apache HTTP server 2.2, Tomcat 5.5, Sakai 2.7.1.
    Database: MySQL 5.1, 2 x dual-core processors, 16G RAM.
    File storage: SAN Disk shared via NFS.
    Load balancing: Apache 2.2 with mod_jk.

    University of Michigan
    User base: 45,000+
    Cluster: five Dell PowerEdge 1950 boxes, each with 16 GB RAM running 64-bit RHEL 5.x (a sixth PowerEdge 1950 is utilized outside the cluster as a search server).
    App servers: Apache HTTP server 2.2, fronting a single Tomcat 5.5/Sakai 2.7.1 install. One Java 1.6 JVM is configured per server with a 6 GB heap.
    Database: Oracle 10g running on a Sun Fire T5120 with 128 GB RAM and Solaris 10 as the OS.
    File storage: allocated 6 TB of disk space and stored externally in a NetApp FAS3020 filer, NFS mount.
    Load balancing: two NetScaler RS9800 Secure Application switches.

    Indiana University
    User base: 100,000+
    Cluster: two HP DL740 servers, 8-way with 3.0 GHz CPUs, 64 GB RAM and an IBM ESS "Shark" SAN running nine virtual application servers.
    App servers: each virtual server is allocated 2 CPUs and 3.6 GB RAM and runs Apache HTTP 2.2/Tomcat 5.5.
    Database: the Oracle 10g database is also a virtual instance housed on a Dell 810, dual socket, Quad Core server. The database is allocated 8 CPU and 32 GB RAM.
    File storage: allocated 7 TB of disk space and is stored externally utilizing two NetAppliance FAS920C filers, NFS mount.
    Load balancing: two HP DL385 servers running Zeus ZXTM load balancers. The load balancers run under Red Hat Enterprise Linux (RHEL) within VMware virtual machines and the architecture allows for more horizontal scaling if required.

    See also:

    External Authentication choices

    The Sakai CLE can integrate with a variety of external authentication services including CAS, Kerberos, LDAP, Shibboleth and WebAuth.

    Examples:

    Australian National University: LDAP.
    Indiana University: CAS.
    Georgia Tech: CAS.
    Oxford University: WebAuth.
    Pepperdine University: CAS.

    Stanford University: Kerberos.
    Stockholm University: Shibboleth.
    University of California, Davis: CAS.
    University of Delaware: LDAP.

    University of Hawaii: LDAP.
    University of Michigan: Kerberos.
    University of Florida: Shibboleth.
    Yale University, CAS.

    Integrating with student information systems

    Sakai Community institutions have integrated their Sakai CLE installations with Banner, Datatel and Peoplesoft as well as a variety of home-grown student information systems (SIS).

    The Sakai CLE has two basic approaches to integrating data from external systems. Most sites use a combination of these approaches. The first approach is to use the internal Sakai "provider" APIs. These APIs are places for Sakai to "consult" while Sakai is running. There are APIs for User Identity, User Directory, Course Listing and User Roles.

    User Identity API: allows Sakai to call local code to validate users when they log into the system. This commonly uses Kerberos, Active Directory or LDAP to validate the user's credentials.

    User Directory API: allows user information such as name and e-Mail address to be retrieved from an external system such as LDAP or X.509. The User Directory API has provisions to allow the local site to make decisions when to display student information in order to meet FERPA requirements. Each institution has different interpretation of FERPA so the precise FERPA decisions are delegated to the User Directory API.

    Course Listing API: consulted when the instructor is creating a course site - this API returns the list of externally stored rosters for which the current user is the instructor. The user can select from one or more of these external rosters to associate with the course they are creating.

    User Role API: is consulted when users log in to determine which external rosters they user is a member of and what their role is within those rosters. The Sakai internal configuration is updated if there are any changes to an individual's roster status.

    The above API's are "pull" APIs--they are consulted when the user logs in or tries to take some action. The Course List API described above does not auto-populate courses.

    If there is a desire to "push" information into the Sakai CLE, there are two approaches - Quartz and web services.

    Sakai utilizes an internal batch system called Quartz that provides a cron-like capability within Sakai. Quartz is used by creating a Java class that does the necessary work and then having Quartz schedule the regular execution of that Java code.

    A more common approach to pushing configuration information into Sakai is through web services. Any of Sakai's APIs can be accessed by web services. Web service access points have been developed for many of the common Sakai APIs used for configuration. These SOAP web services can be called from PHP, Python, Perl, Java, .NET or any other language. The Sakai CLE web service data structures are kept simple to insure the widest possible interoperability with as many languages as possible. Administrators often build scripts to pull data from their SIS system and populate the Sakai CLE with that data. These scripts may be automated using cron or manually executed by the administrator at the proper time during a semester.

    This combination of pull/push configuration capabilities allows for a very wide range of integration possibilities for the Sakai CLE.

     

    Downloading

    To download the Sakai CLE 2.8.3 release, you need to check out the code from our Subversion repository:

    svn co https://source.sakaiproject.org/svn/sakai/tags/sakai-2.8.3/

    Indie projects

    A number of Sakai CLE projects (known collectively as "indie" projects) are currently not included in either the source archive or source check out. Instead, these projects are downloaded, installed in your local .m2 repository and then deployed to Tomcat as *.zip overlays during the Maven build process. If you need to apply any local customizations to these projects you must check out the code separately.

    Indie project teams manage their own release cycles independently of the general Sakai CLE release cycle, permitting more frequent "off-cycle" maintenance releases for key projects such as the Kernel or Test and Quizzes. This means you can upgrade them in your release more frequently, if you desire.

    Each Indie project site includes a variety of reports regarding the release, including Javadocs.

     

     

     

     

    Installing

    Demo install

    Sakai CLE 2.8 install guide (demo) (for 2.8.2 and lower)

    Binary install

    Sakai CLE 2.8 install guide (binary) (for 2.8.2 and lower)

    Source install

    Sakai CLE 2.8 install guide (source)

     

    Upgrading

    Unable to render {include} The included page could not be found.

     

    Configuring

    Unable to render {include} The included page could not be found.

     

    New properties, permissions

    1.0 Property additions/changes

    Release

    Tool/Service

    Property

    Default

    Ticket

    Change

    2.8.0

    account

    user.recaptcha.enabled
    #user.recaptcha.public-key
    # user.recaptcha.private-key

    false

    SAK-12489 - Allow captcha support for new account signups. Closed , SAK-19267 - Rename properties in SAK-12489 (Captcha for new user accounts) Closed

    Enable/disable reCAPTCHA.   To configure, signup at http://www.google.com/recaptcha, get the API keys, and plug it into sakai.properties as in the description.

    2.8.0

    assignments

    assignment.letterGradeOptions

     

    SAK-18752 - Provide a way to customize letter grades in the Assignments tool Closed

    Provide a way to customize letter grades in the Assignments tool.  Values specified will display in the drop-down list for letter grade assignment.

    2.8.0

    basiclti

    basiclti.outcomes.enabled

    false

    SAK-24044 - Add Support for Basic Outcomes and Settings Service Closed

    Added support for basic outcomes and settings service.

    2.8.0

    basiclti

    basiclti.roster.enabled

    false

    SAK-24059 - Implement IMS BLTI Context Memberships Service Closed

    Allows an external tool (if granted proper permissions) to retrieve a course roster for the course that they were launched from. This allows the launch to specify a URL that contains some resource content.
    NOTE:  Experimental Feature

    2.8.0

    basiclti

    basiclti.contentlink.enabled

    false

    SAK-24054 - Add Support for the IMS BLTI ext_resource_link_content extension Closed

    This allows the launch to specify a URL that contains some resource content.   
    NOTE:  Experimental Feature

    2.8.0

    common

    profile.autoCleanUp

    true

    JIRA Issues Macro: JIRA project does not exist or you do not have permission to view it.

    Enables a listener that looks for user.del events and when they happen remove that users profiles.

    2.8.0

    editor

    wysiwyg.editor


    JIRA Issues Macro: JIRA project does not exist or you do not have permission to view it.

    Addition of option to specify ckeditor. Please see documentation prior to implementation
    NOTE:  Experimental Feature

    2.8.0

    entity broker

    entitybroker.maxJSONLevel

    7

    SAK-18643 - Add the ability to specify the depth of object graph serialisable to JSON Closed

    Add the ability to specify the depth of object graph serialisable to JSON
    Possible values
    1-7

    1.2.1

    kernel

    promoteUsersToProvided@org.sakaiproject.authz.api.AuthzGroupService

    true

    KNL-499 - Allow ability to turn off automatic "promotion" to provided user Closed

    Adds ability to turn off automatic "promotion" to provided user that was implemented in KNL-403

    1.2.1

    kernel

    mail.*.sendpartial

    true

    KNL-570 - Add sakai property to set sendpartial Email property Closed

    Property added to set sendpartial Email

    1.2.1

    kernel

    sakai.X-UA-Compatible

    IE=EmulateIE8

    KNL-697 - Create compatilbity patch for IE9 Closed

    Property added to pass X-UA-Compatible header for Compatibility mode. Default to EmualteIE8

    1.2.1

    kernel

    load.bundles.from.db

    false

    KNL-563 - apply kernel changes for dynamic resource loader Closed

    Property added to load msg bundle data from data base

    1.2.1

    kernel

    load.bundles.from.db.timeout

    30000

    KNL-563 - apply kernel changes for dynamic resource loader Closed

    Property added to control the number of milliseconds before rechecking database for updates, the default is 30 secs.

    2.8.0

    login

    login.k2.authentication.autoProvisionUser
    #top.login = false
    #container.login = true
    #login.k2.authentication = true
    # login.k2.authentication.vaildateUrl = http://localhost:8080/var/cluster/user.cookie.json?c=

    false

    JIRA Issues Macro: JIRA project does not exist or you do not have permission to view it.
    ,
    JIRA Issues Macro: JIRA project does not exist or you do not have permission to view it.

    Create a new container authN filter which authenticates against K2

    NOTE:  Experimental Feature

    2.8.0

    msgcntr

    mc.notificationDefault

    1

    SAK-24628 - Feature Request: Please allow an institution to set a default preference for the "Watch" notification email functionality in Forums 2.7 Closed

    Allows an implementation to set a default preference for the "watch" notification email functionality introduced in 2.7
    Possible values
    0= email_none
    1=email_reply_to_my_message
    2=email_reply_to_any_message

    2.8.0

    osp

    xslPortal.displayToolCategories

    true

    SAK-18831 - add configuration option to turn tool categories off in xslt charon portal Closed

    Add configuration option to turn off tool categories in xslt charon portal

    2.8.0

    portal

    display.users.present.iframe

    false

    SAK-19129 - Eliminate the Presence iFrame and Replace with jQuery.Ajax calls to retrieve the list of users Closed

    Move the presence from an iFrame into a div - controllable by a series of
    properties. If you set this property to true, Sakai will go back to its old behavior.

    2.8.0

    portal

    timeoutDialogEnabled

    true

    SAK-19148 - Suggest Changing the Default timeoutDialogEnabled property to be "True" Closed

    Existing property where the default setting has been changed from false to true.

    2.8.0

    portal

    timeoutDialogWarningSeconds

    600

    SAK-19148 - Suggest Changing the Default timeoutDialogEnabled property to be "True" Closed

    Change the "settle time" before the timeout code starts to operate to 60 second.
    This property is used in combination with the previous. 

    2.8.0

    portal

    gatewaySiteUrl

     

    SAK-19089 - Ability to set a url for the gateway site Closed

    Adds ability to specify a URL

    2.8.0

    portal

    portal.allow.minimize.tools

    true

    SAK-18687 - Ability to collapse site navigation Closed

    Allows the ability to minimize the tools where only the icons display.

    2.8.0

    portal

    portal.allow.minimize.navigation

    true

    SAK-18687 - Ability to collapse site navigation Closed

    Allows the ability to minimize the navigation of top logo.

    2.8.0

    portal

    portal.pda.bypass

    \\.jpg$|\\.gif$|\\.js$|\\.png$|\\.jepg$|\\.css$|\\.zip$|\\.pdf
    .mov$|
    .json$|
    .jsonp$
    .xml$|
    .ajax$|
    .xls|
    .xlsx|
    .doc|
    .docx

    SAK-20035 - PDA Portal Must Pass Through non-HTML URLs Closed

    To override the default regular expression add this property.  To specify a different regular expression for a particular Sakai tool, use a property with this pattern:
    portal.pda.bypass.sakai.samigo=
    .css$|
    .zip$|
    .pdf$

    2.8.0

    portal

    portal.add.mobile.link

    false

    SAK-19787 - Suspected usability issue in PDA portal - 86% bounce rate Closed

    Enabling this property (ie true), adds mobile version tab at the top of the interface.

    2.8.0

    portal

    portal.pda.autoredirect

    true

    JIRA Issues Macro: JIRA project does not exist or you do not have permission to view it.

    There is a footer added to the bottom of the page with a link 'Switch to classic view'. If followed, this will redirect back to the normal portal and set a cookie for that session which holds this preference. If this cookie is set, this will disable the redirect until the user closes and quits their browser.

    2.8.0

    presence

    display.users.present.myworkspace

    false

    SAK-19130 - Change Default for Presence in My Workspace Closed

    Existing property where the default setting has been changed from true to false. Presence is now turned off in MyWorkspace

    2.8.0

    profile2

    profile2.official.image.enabled

    false

    SAK-27133 - Allowing using official photos for profile2 Closed

    Enables access/user to official institutional image for profile image

    2.8.0

    profile2

    profile2.official.image.source

    url

    SAK-27133 - Allowing using official photos for profile2 Closed

    Tells the system what type of official photo to look for. When url is selected, system will look in the PROFILE_IMAGES_OFFICIAL_T for a record
    Possible values
    url
    provider

    2.8.0

    profile2

    profile2.official.image.attribute

    jpegPhoto

    SAK-27133 - Allowing using official photos for profile2 Closed SAK-17816 - Add jpegPhoto mapping to JLDAP provider/UserDirectoryService Closed

    Used when profile2.official.image.source=provider is configured. 
    attributre should match the value your provider populates in the properties for a User.  Please see SAK-17816 - Add jpegPhoto mapping to JLDAP provider/UserDirectoryService Closed for more information

    2.8.0

    quartz scheduler

    scheduler.loadjobs

    int

    SAK-19178 - Schedule Event Log Purge for Job Scheduler During Initial Startup Resolved

    allows injecting job configurations into the SchedulerManagerImpl that will be scheduled on startup
    Possible values
    init
    true

    1.0.1

    shortenedurl

    shortenedurl.implementation

     

    SAK-24227 - Make abstract interface that is pluggable with a variety of URL shortening methods. Closed

    Used to set service URL for shortened url is implemented.

    2.8.0

    site info

    siteManage.validateNewUsers

    false

    SAK-18997 - Add support for Account Validator Closed

    Add support for Account Validator

    2.8.0

    site info

    siteinfo.prohibited_permission_for_joiner_role

    site.upd

    SAK-18462 - Ability to restrict joiner role selection to non-maintainer roles Closed

    Adds ability to restrict joiner role selection to non-maintainer roles. 
    Possible values
    List of permissions that shouldn't be possessed by roles for site joiner.

    2.8.0

    test and quizzes

    samigo.canRecordAverage

    false

    SAM-862 - The ability to choose "Average" for the "Recorded Score if Multiple Submissions" Verified

    Adds functionality to choose "Average" for the "Record Score if Multiple Submissions"

    2.8.0

    test and quizzes

    samigo.showAssessmentTypes

    true

    SAM-921 - Improvement: No Assessment Templates/Types Closed

    Addition of setting to remove the display of "Assessment Types"

    2.8.0

    web content

    sakai.iframe.annotatedurl

     

    SAK-19369 - Merge AnnotatedUrl- an iframe tool to trunk Closed

     

    2.0 New/changed permissions

    Release

    Tool/Service

    Permission

    Notes

    2.8.0

     

     

     

     

    Database support

    The Sakai CLE supports the following production-grade databases:

    Database

    Driver

    Notes

    MySQL 5.1.x

    MySQL Connector/J 5.1.13+

    (minus) Sakai requires transaction support. In the case of MySQL you must implement the InnoDB storage engine to ensure proper transaction handling.

    MySQL 5.0.x

    MySQL Connector/J 5.0.4+

    (minus) Sakai requires transaction support. In the case of MySQL you must implement the InnoDB storage engine to ensure proper transaction handling.

    Oracle 11g

    OJDBC

    (warning) 2.8 was not tested using Oracle 11g; however, both Virgina Tech and the University of Florida are using Oracle 11g with their Sakai deployments.
    (warning) Oracle recommends using the latest 11g driver if you are using Java 6 with either 10g or 11g; with Java 6 in combination with the 11g driver, it's recommended that you use kernel-1.2.1+ (2.8), kernel-1.1.11+ (2.7) or kernel-1.0.x (r87324+) in order to include the fix for KNL-637.

    Oracle 10g / 9i

    OJDBC

    (warning) Both Oracle 10g AND 9i users must use the 10g driver; the latest 10g "Release 2" (10.2.x) or higher is recommended.
    (warning) Oracle recommends using the latest 11g driver if you are using Java 6 with either 10g or 11g; with Java 6 in combination with the 11g driver, it's recommended that you use kernel-1.2.1+ (2.8), kernel-1.1.11+ (2.7) or kernel-1.0.x (r87324+) in order to include the fix for KNL-637.

    DB2

     

    Deprecated

    Choose the appropriate MySQL or Oracle JDBC driver (or connector) for your installation. For MySQL, download the *zip/*tar.gz archive, extract its contents and copy the mysql-connector-java-<version>-bin.jar to $CATALINA_HOME/common/lib. For Oracle download the ojdbc14.jar file and copy it to $CATALINA_HOME/common/lib.

    (info) You will not need to create Sakai database objects (tables, indices, etc) when setting up your database. Sakai generates its own database schema automatically during the Tomcat setup process via the autoDDL setting in sakai.properties.

    In actuality, Sakai is not limited to these database choices and integration with other RDBMS systems is not difficult. In the past at least one installation used Microsoft SQL Server while requests for PostgreSQL integration are occasionally raised on the Sakai developers list. However, to date no one in the Sakai Community has stepped forward to support alternatives to either Oracle or MySQL, a prerequisite for adding additional database options to the release.

    (minus) Irrespective of whether you utilize MySQL, Oracle or DB2 be sure you have configured your database to use the UTF-8 character set. Failure to do so will result in range of issues when attempting to use Unicode characters in Sakai. Consult your Db documentation or a local DBA for instructions on how to set your database up properly.

    If you are uncertain as to how your database is currently configured, you can check with a query. Here is a sample query for checking an Oracle instance:

    SQL> select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
    
    VALUE
    --------------------------------------------------------------------------------
    AL32UTF8
    

    For MySQL, the command to see what encoding your database is currently set to is "show create database sakai", assuming, of course, that your database is named "sakai". e.g.:

    mysql> show create database sakai;
    +----------+----------------------------------------------------------------+
    | Database | Create Database |
    +----------+----------------------------------------------------------------+
    | sakai | CREATE DATABASE `sakai` /*!40100 DEFAULT CHARACTER SET utf8 */ |
    +----------+----------------------------------------------------------------+
    1 row in set (0.00 sec)
    

    Converting a database from one character set to another is a non-trivial operation, particularly if it is a large production database. We recommend strongly that you verify this aspect of the database creation and configuration process before deploying Sakai.

    1.0 Configure the database

    By default, all Sakai distributions are configured to use an in-memory version of HSQLDB. HSQLDB is provided for testing/demo purposes only and should not be run in production.

    Whatever database you choose to use you will need to modify at a minimum the following connection settings in sakai.properties:

    url@javax.sql.BaseDataSource
    username@javax.sql.BaseDataSource
    password@javax.sql.BaseDataSource

    2.0 Set the database username and password

    Set your database username and password:

    # DATABASE CONFIGURATION - make sure to modify details to match your particular setup
    
    # The username and password. The defaults are for the out-of-the-box HSQLDB. Change to match your setup.
    username@javax.sql.BaseDataSource=yourDbUserName
    password@javax.sql.BaseDataSource=yourDbPassword
    

    3.0 Set the database connection

    HSQLDB Sample Configuration

    HSQLDB is Sakai's default database. Remember to comment out its settings should you choose to run Sakai utilizing either MySQL or Oracle.

    ## HSQLDB settings - on by default
    vendor@org.sakaiproject.db.api.SqlService=hsqldb
    driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDriver
    hibernate.dialect=org.hibernate.dialect.HSQLDialect
    validationQuery@javax.sql.BaseDataSource=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
    # Two hsqldb storage options: first for in-memory (no persistence between runs), second for disk based.
    #url@javax.sql.BaseDataSource=jdbc:hsqldb:mem:sakai
    url@javax.sql.BaseDataSource=jdbc:hsqldb:file:${sakai.home}db/sakai.db
    
    MySQL Sample Configuration

    Locate the MySQL configuration block, uncomment the settings and save your changes. Make sure you modify the data source, username and password settings to match your local environment. Do not forget to comment out the HSQLDB and Oracle settings.

    # MySQL settings - make sure to alter as appropriate
    vendor@org.sakaiproject.db.api.SqlService=mysql
    driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
    hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
    url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai?useUnicode=true&characterEncoding=UTF-8
    validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
    defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED
    
    # To get accurate MySQL query throughput statistics (e.g. for graphing) from the mysql command
    # show status like 'Com_select'
    # This alternate validation query should be used so as not to increment the query counter unnecessarily when validating the connection:
    #validationQuery@javax.sql.BaseDataSource=show variables like 'version'
    
    Oracle Sample Configuration

    Locate the Oracle configuration block, uncomment the settings and save your changes. Make sure you modify the data source, username and password settings to match your local environment. Do not forget to comment out the HSQLDB and MySQL settings.

    # Oracle settings - make sure to alter as appropriate
    vendor@org.sakaiproject.db.api.SqlService=oracle
    driverClassName@javax.sql.BaseDataSource=oracle.jdbc.driver.OracleDriver
    #hibernate.dialect=org.hibernate.dialect.Oracle9iDialect
    hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
    url@javax.sql.BaseDataSource=jdbc:oracle:thin:@your.oracle.dns:1521:SID
    validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
    defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED
    

    (warning) Oracle users may experience performance issues with certain of the SQL settings that work for HSQL and MySQL. Oracle users can reduce Db load by uncommenting the following settings:

    # For improved Oracle performance (from the University of Michigan)
    #validationQuery@javax.sql.BaseDataSource=
    #defaultTransactionIsolationString@javax.sql.BaseDataSource=
    #testOnBorrow@javax.sql.BaseDataSource=false
    

    4.0 Set auto.ddl=true

    (info) On startup, Sakai will generate all database objects (tables, keys, constraints, etc.) automatically, obviating the need to run DDL scripts manually per the sakai.properties setting auto.ddl.

    # establish auto.ddl - on by default
    auto.ddl=true
    #auto.ddl=false
    

    (warning) Once the database schema is created you should set auto.ddl=false.

    5.0 Install MySQL 5.1 / 5.0

    Configuring the Sakai CLE to use MySQL is an excellent option both for local development and production purposes.

    (minus) Sakai requires transaction support. In the case of MySQL you must implement the InnoDB storage engine to ensure proper transaction handling.

    (warning) Users upgrading from MySQL 5.0 to MySQL 5.1 on a Mac have reported name comparison problems on startup (for more info see http://collab.sakaiproject.org/pipermail/sakai-dev/2010-June/008066.html. This issue is solved by specifying the following property in a local my.cnf configuration file:

    lower_case_table_names=1
    

    (info) You will not need to create Sakai database objects (tables, indices, etc) when setting up your database. Sakai generates its own database schema automatically during the Tomcat setup process via the autoDDL setting in sakai.properties.

    (info) Case sensitivity. In most varieties of UNIX, MySQL is case sensitive since the underlying operating system determines the case sensitivity of database and table names. This is not the case for MySQL running in Windows which is case insensitive. Previous MySQL conversion scripts contained a mixture of upper case and lower case statements which occasionally caused problems for upgraders; for 2.8 we opted for lower case for the syntax while leaving the table and field names upper case. Testing on MySQL 5.1 did not reveal any issues with this choice.

    Before installing MySQL, confirm whether or not it is already installed on your system by checking the version from the command line:

    mysql --version
    mysql  Ver 14.14 Distrib 5.1.52, for apple-darwin10.3.0 (i386) using readline 5.1
    

    If MySQL is not installed download MySQL 5.1/5.5 binaries or source from http://dev.mysql.com/downloads/. Linux users should install MySQL using a package or binaries if possible. Choose the standard configuration. Windows users should consider installing MySQL as a service. Remember to include MySQL's /bin directory in your PATH statement.

    MySQL 5.5: http://dev.mysql.com/downloads/mysql/5.5.html

    MySQL 5.1: http://dev.mysql.com/downloads/mysql/5.1.html

    Assign a password for the root account:

    mysql -u root -pmysqlpassword
    
    5.1 Set MySQL environment variables
    MYSQL_HOME

    Set the MYSQL_HOME environment variable to point to the base directory of your MySQL installation. In the example below, the path points to a symbolic link file rather than the actual MySQL installation directory. You can create a symbolic link ("sym link") in Unix using the ln -s command (e.g., ln -s mysql-5.1.46-osx10.6-x86_64 mysql).

    Unix/Mac:

    export MYSQL_HOME=/usr/local/mysql
    

    Windows:

    set MYSQL_HOME=C:\mysql
    
    PATH

    Add MySQL's /bin directory to your PATH variable.

    Unix/Mac:

    export PATH=$PATH:$CATALINA_HOME/bin:$JAVA_HOME/bin:$M2_HOME/bin:$MYSQL_HOME/bin:$PHP_HOME/bin:$SUBVERSION_HOME/bin:$USR_LOCAL/bin
    

    Windows:

    ;C:\mysql\bin
    
    5.2 Create a my.cnf/my.ini configuration file

    You can configure MySQL to read a wide variety of startup options from a file named my.cnf. Settings are scoped and can be overridden by file location:

    Scope

    Location

    Override

    global

    /etc/my.cnf

     

    server-specific

    binary install: /usr/local/mysql/data/my.cnf; source install: /usr/local/var/my.cnf

    global

    user

    ~/my.cnf

    global, server-specific

    Below is a minimalist MySQL 5.1 configuration file for a development laptop /etc/my.cnf:

    [mysqld]
    default-storage-engine=InnoDB
    lower_case_table_names=1
    

    (warning) Restart MySQL in order for the new settings to take effect.

    5.3 Create a "sakai" database and user account

    Create a Sakai database with a default character set of UTF-8. Then create a "sakai" database user and password and end by refreshing the database permissions (e.g., "flush privileges"):

    mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 272
    Server version: 5.1.46 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql> create database sakai default character set utf8;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> grant all on sakai.* to sakaiuser@'localhost' identified by 'sakaipassword';
    Query OK, 0 rows affected (0.00 sec
    
    mysql> grant all on sakai.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> quit
    

     

    Deprecations, removals

    Release

    Capability

    Status

    Notes

    2.8.0

    Blogger

    retired

    Removed from the build.

    2.8.0

    Reports

    retired

    Removed from the build.

    2.8.0

    WAS

    deprecated

    The Websphere WAS integration project has been deprecated due to lack of community support. It is anticipated that the WAS project will be removed from the 2.9.0 release if no one steps forward to support the project.

    2.8.0

    DB2

    deprecated

    The DB2 conversion scripts have been deprecated due to lack of community support. The scripts are currently incomplete and untested. It is anticipated that DB2 support will be dropped for future CLE releases if community support is not forthcoming.

     

    Known issues

    Open 2.8-related tickets with a priority of critical or higher.

    For a listing of all open 2.8 related tickets with a priority of critical or higher, see:

    https://jira.sakaiproject.org/secure/IssueNavigator.jspa?mode=hide&requestId=13390

    Open 2.x tickets

    For listings of all open 2x-related issues see:

    Blocker Critical Major Minor, trival

    Indie Projects

    A number of Sakai CLE projects (known collectively as "indie" projects) are currently not included in either the source archive or source check out. Instead, these projects are downloaded, installed in your local .m2 repository and then deployed to Tomcat as *.zip overlays during the Maven build process. If you need to apply any local customizations to these projects you must check out the code separately.

    Indie project teams manage their own release cycles independently of the general Sakai CLE release cycle, permitting more frequent "off-cycle" maintenance releases for key projects such as the Kernel or Test and Quizzes. This means you can upgrade them in your release more frequently, if you desire.

    Each Indie project site includes a variety of reports regarding the release, including Javadocs.

    Older Releases

    The Sakai CLE 2.6 series is now unsupported. The release of Sakai CLE 2.8.0 marks the end of official community support for the Sakai 2.6 series. Organizations running Sakai CLE 2.6 (or earlier versions) are strongly encouraged to upgrade in order to take advantage of continued maintenance support. Note also that with the release of Sakai 2.9, Sakai 2.7 support has also ceased.

    License

    The Sakai CLE 2.8 series is licensed under the Educational Community License version 2.0.

    • No labels