Sakai 10 new properties and permissions

1.0 Property additions/changes


Release

Tool/Service

Property

Ticket

Change

10.0Search

Not recommended, but available for using the pre-Sakai 10 search tool. ElasticSearch is the default. These properties would revert to legacy search.

search.service.impl=org.sakaiproject.search.component.service.impl.ConcurrentSearchServiceImpl
search.indexbuilder.impl=org.sakaiproject.search.component.service.impl.SearchIndexBuilderImpl

SRCH-130 - Getting issue details... STATUS ElasticSearch is the new default. Using the legacy search tool is not recommended.
10.0Search
SRCH-119 - Getting issue details... STATUS
10.0Samigo (Test and Quizzes)

All question types are enabled by default.

It is correct that multiplechoice has two properties to be set (historical reasons for this)

samigo.question.show.extendedmatchingitems 
samigo.question.show.fileupload 
samigo.question.show.essay 
samigo.question.show.audio 
samigo.question.show.matching 
samigo.question.show.truefalse 
samigo.question.show.multiplechoicesinglecorrect 
samigo.question.show.multiplechoicemultiplecorrect 
samigo.question.show.fillintheblank 
samigo.question.show.fillinnumeric 
samigo.question.show.survey 
samigo.question.show.matrixsurvey 
samigo.question.show.calculatedquestion

SAM-2296 - Getting issue details... STATUS New feature for Sakai 10. Institutions may configure which question types they use in Samigo and which they do not.
10.0OSP (Portfolios)osp.freeform.disabled=true
OSP layouts are off by default. Do not turn OSP layouts on without consulting with the Sakai developer community (in other words it is strongly recommended you keep OSP layouts turned off by default.)
10.0Support for Google Analytics

example properties

portal.google.analytics_id=UA-12345-5 
portal.google.analytics_domain=http://www.dr-chuck.com/ 
portal.google.analytics_detail=true 

When a analytics_id is specified, the GA (ga.js) code is include in the portal pages. If analytics_detail is true, the user's eid and siteId are sent as Custom Variables 1 and 2. 

https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables

SAK-25634 - Getting issue details... STATUS This JIRA will add support to Sakai's portal to include JavaScript to add Google analytics to all of the pages served by Sakai.
10.0Pollspoll.allow.public.access is false by default. New property. SAK-25399 - Getting issue details... STATUS Polls can now be made public more easily.
10.0Mailsender

Default is OOTB "postmaster@"+host.

This can be problematic for institutions that need to configure this value for dev/qat environments. 

smtp.postmaster.address.local-part 
smtp.postmaster.address.domain

SAK-25393 - Getting issue details... STATUS Allow configuration of mail "from:"
10.0Portalbottom.copyrighttext is "currentYearFromServer", SAK-25293 - Getting issue details... STATUS To save system administrators' time, the copyright end date should automatically update to the current year, if the institution chooses.
10.0Messages

The new feature to display profile images will be disabled by default.

msgcntr.pvtmsg.showProfileInfo = true 

Additionally, if profile images are enabled and you do not want to allow linking to the profile information, you can utilize the following profile2 property. If absent, this defaults to true: 

profile2.profile.link.enabled

SAK-24869 - Getting issue details... STATUS Just like Forums is displaying the profile picture [1], our users can see the sender's picture when reading their messages
10.0Forums

example:

msgcntr.forums.defaultAvailabilityTime=8:00am

SAK-24866 - Getting issue details... STATUS Instead of using the current time as default for availability.
10.0Forums
msgcntr.forums.import.openCloseDates=true (false by default)
SAK-24862 - Getting issue details... STATUS Supports a case where instructors create parent sites and import the information into section sites for the same semester.
10.0Forumsmc.alwaysShowFullDesc=true (default false) SAK-24858 - Getting issue details... STATUS When you load the main forum's page, let there be a property that will allow an institution to decide whether the full description is shown or hidden. 
10.0Forumsmsgcntr.forum.rankimage.maxsize SAK-24854 - Getting issue details... STATUS
10.0Messages

Default is false.

mc.messages.forwardEmailDisabled=true/false


SAK-24850 - Getting issue details... STATUS This can turn on/off the "CC" option when sending a message in the "Message" tool for all sites (institution level). If the property is true, then all sites will not have this option, otherwise, it defers to site level settings.
10.0Messagesmc.messages.ccEmailDisabled=true/false SAK-24849 - Getting issue details... STATUS An institution can not disable the CC option, until now. They can set the default to false (mc.messages.ccEmailDefault=false) but an instructor could change it at the site level. This property completely removes this from the UI and force the value to false: 
10.0PDA Portalportal.pda.iframesuppress=:all: (new default) SAK-25494 - Getting issue details... STATUS
10.0Config#How many days to retain deleted content 
content.keep.deleted.files.days=30
SAK-24426 - Getting issue details... STATUS
10.0Site InfoThe sakai.properties introduced by this patch are: 
- sitemanage.join.joinerGroup.enabled=[true/false]  - default is false
- sitemanage.join.notification.enabled=[true/false] 
- sitemanage.join.excludeFromPublicList.enabled=[true/false] 
- sitemanage.join.limitAccountTypes.enabled=[true/false 
- sitebrowser.join.enabled=[true/false] 
- sitemanage.join.allowedJoinableAccountTypeCategories (count + list) 
- sitemanage.join.allowedJoinableAccountTypes (count + list) 
- sitemanage.join.allowedJoinableAccountTypeLabels (count + list)
SAK-24423 - Getting issue details... STATUS
10.0Password Validationaccount-validator.terms - default is null SAK-24366 - Getting issue details... STATUS Required checkbox on the signup page which is only shown if account-validator.terms is set to a URL which contains the terms and conditions.
10.0Password validationUpdating the default props 

# Role that can use the password reset tool by default. 
# guest users are ones that are created by Site Info when adding external participants. 
# registered users are ones the are created by the New Account tool on the Gateway site. 
# Default: guest 
#resetRoles=guest,registered 

# resetAllRoles allows this to work for any roles in the system (overrides resetRoles above) 
# Default: false 
#resetPass.resetAllRoles=true
SAK-24365 - Getting issue details... STATUS
10.0
# If you are running Sakai in a cluster behind a load balancer and the load balancer is changing the 
# scheme during forwarding, oauth validation will fail because the scheme is taken into account during the 
# signature comparison. Set this to the scheme that your load balancer is running under and the 
# launch request will be validated, or at least the scheme won't break it. 
# basiclti.provider.forcedurischeme=
SAK-23997 - Getting issue details... STATUS
10.0Assignmentsproperty: (default true) 
assignment.usePeerAssessment=(true|false)
SAK-23812 - Getting issue details... STATUS
10.0Password validation

 ## SAK-23737 - User types allowed to bypass password validation when editing account details
# An empty list (no property set) indicates that all types require password validation (default behavior)
# Which user types are provided and will therefore be allowed to bypass the password validation step
#user.type.provided=asdf,qwerty

SAK-23737 - Getting issue details... STATUS
10.0Site CreationIn the default SectionFieldProviderImpl the sizes are limited to subject=8, course=3, section=3. This should be configurable, since most places use this default implementation. 

Adding 3 new properties 

wsetup.sectionfield.required_fields_subject.max 
wsetup.sectionfield.required_fields_course.max 
wsetup.sectionfield.required_fields_section.max
SAK-23652 - Getting issue details... STATUS
10.0Portal

default

portal.title.shortdescription.show=false

SAK-23597 - Getting issue details... STATUS
10.0Turnitinproperty: 

turnitin.forceSingleAttachment (false by default) 

to turn on property: 

turnitin.forceSingleAttachment=true 


This forces the UI to select "Single File Upload Only" and disable the other options. Toggling re-enables the options.
SAK-23592 - Getting issue details... STATUS
10.0Resources# list of macros that will be expanded when used in a web link in resources. 
content.allowed.macros=${USER_ID},${USER_EID},${USER_FIRST_NAME},${USER_LAST_NAME} 

Note that site related properties will not work because the resolver code is actually called from access which has no context. 
It may be possible to pass in the context since the original resource has context, then site properties would work, however this may have security implications where the link is embedded in another site and that aspect needs to be fully explored. As such it has not been included. It is a trivial exercise to add this though, see BaseContentService in the kernel.
SAK-23587 - Getting issue details... STATUS
10.0Site
The property site.title.maxlength allow long site titles fix the UI by cutting the end of the title in tabs. 

We've got many long site titles and very similar, for example, "This is the subject part I", "This is the subject part II". In these cases both cutted titles appears to be the same "This is the subj...". 

We want a more flexible way to do it. With 2 new properties: 

   site.title.cut.method = customize the cut method. Default 100:0. 
   site.title.cut.separator = separator string. Default ... 

The value has the format X:Y, wich means X percent of maxlength at the beginning and Y percent of maxlength at the end. Now if you choose 50:50 and [...], the above example, will get something like "This is[...]part I" and "This is[...]part II". 

# Max length for site title display 
# Default 25 characters 
#site.title.maxlength=25 

# Cut method for site title display 
# Default 100:0 display the first site.title.maxlength characters and the separator string at the end 
# Other values: 
# 0:100 display the last site.title.maxlength characters and the separator string at the beginning 
# 50:50 display first site.title.maxlength*50% characters the separator string and the last site.title.maxlength*50% 
#site.title.cut.method=100:0 

# Separator string used to separate characters in cut method 
# Default ... 
#site.title.cut.separator= ... 
SAK-23567 - Getting issue details... STATUS
10.0Student Success PortalConfiguration will work like so: 
# SSP Early Alert integration 
# Allow Early Alerts integration? (default: false) 
ssp.allowed.alerts=true 
# URL to the SSP server 
ssp.server.url=http://ssp.unicon.net/ssp-platform/sso 
# the shared password between SSP and Sakai 
ssp.alerts.shared.password=********* 
# roles allowed to have SSP Early Alerts (default: access,Student) 
ssp.allowed.alert.roles=access,Student
SAK-23562 - Getting issue details... STATUS
10.0Site section management

# Allow instructors to create and manage sections by themselves while also
# having some types of sections locked (read only). With this configuration
# (and MANUAL type set) an Instructor can create and manage sections except
# with the configured readonly categories.
# Defines the category codes of sections that are readonly (e.g. 01.lct,02.lab)
# Default: "" (empty) - all sections can be edited
#section.info.readonly.section.categories=

SAK-23495 - Getting issue details... STATUS
10.0Site creation# Sites with non-editable title (by site type) 
# Example: course - course sites will have read only title. 
# Set as empty "site.type.titleNotEditable=", every site title would be modified. 
# Default: course 
#site.type.titleNotEditable=course,project
SAK-23469 - Getting issue details... STATUS
10.0Portal Chat

# Specifies the amount of time, in milliseconds, between latestData requests sent by the javascript client.
#portal.chat.pollInterval=5000

SAK-23374 - Getting issue details... STATUS
10.0Portal Chat & Video

# Set this to true and video calling will be enabled on portal chat.
# DEFAULT: false
# portal.chat.video=true

# A list of nat traversal servers to try during portal chat video calling.
# DEFAULT: stun:stun.l.google.com:19302
# portal.chat.video.servers={list of ice servers}

# The timeout, in seconds, for operations like waiting for a call to be answered.
# DEFAULT: 25
# portal.chat.video.timeout=50

SAK-23349 - Getting issue details... STATUS
10.0

# Control the default hidden status of imported resources content
# when using Import from Site > Re-use Content feature in Site Info (SAK-23305)
# Default: false (visible)
# Since: 2.10
#content.import.hidden=true

SAK-23305 - Getting issue details... STATUS
10.0Portal Chat

# Set this to true and portal chat will be disabled for a user UNLESS portal.chat.permitted is set
# in their MyWorkspace site. Defaults to false.
#portal.chat.securedByUser=false

SAK-23259 - Getting issue details... STATUS
10.0

#### SAK-23257: Restrict site maintainer from adding or elevating users to certain roles.
#### For example, prevent the Instructor of a course site from adding new Instructor users
# DEFAULT: empty (no restricted roles)
# You can narrow the restriction to a specific type of site by appending .sitetype
# sitemanage.addParticipants.restrictedRoles=CustomRole
# sitemanage.addParticipants.restrictedRoles.course=Instructor
# sitemanage.addParticipants.restrictedRoles.project=maintain

SAK-23257 - Getting issue details... STATUS
10.0

SAK-23237 - Getting issue details... STATUS
10.0Gradebook
property: 

gradebook.defaultMaxDisplayedScoreRows 

options: 

gradebook.defaultMaxDisplayedScoreRows=5 
gradebook.defaultMaxDisplayedScoreRows=10 
gradebook.defaultMaxDisplayedScoreRows=15 
gradebook.defaultMaxDisplayedScoreRows=20 
gradebook.defaultMaxDisplayedScoreRows=50 
gradebook.defaultMaxDisplayedScoreRows=100 
gradebook.defaultMaxDisplayedScoreRows=0 (this means "all") 

By default, the option stays at 50. Also, if you put an option not listed above, it will default to 50
SAK-23193 - Getting issue details... STATUS
10.0Sections

# SAK-22537: How many sections can be added at one time?
# DEFAULT: 10
#sections.maxgroups.category=20

SAK-22537 - Getting issue details... STATUS
10.0Login

# Log failed login attempts? Defaults to true.
#login.log-failed=true

SAK-22430 - Getting issue details... STATUS
10.0Resources

defaults to true

content.upload.dragndrop=(true|false)

SAK-22306 - Getting issue details... STATUS
10.0Citationscitations.default.list.page.size=50 SAK-22297 - Getting issue details... STATUS
10.0Assignmentassignment.group.submission.enabled=true SAK-22282 - Getting issue details... STATUS
10.0Portal

HTML code for branding the Sakai online help

help.header 
help.footer

SAK-22245 - Getting issue details... STATUS
10.0Site Info/GroupsWe would preferrer not to show the group summary to people on the front page of Site Info, but would still like the group management pages to be available (Manage Groups link). So to support this we allow the groups to be hidden on the front page through a configuration property.

wsetup.group.support.summary=false

This defaults to true so unless set no changes should be seen.
SAK-21989 - Getting issue details... STATUS
10.0Short URLsThe attached work adds a link next to the help icon in the header of every tool in the portal. When clicked it presents a small 'clue tip' window with the direct tool URL to that particular tool. There is also the option to shorten that URL on the fly. A user can then distribute the URL for that tool.

Two patches attached, one for portal, one for reference.

To activate set:
portal.tool.direct.url.enabled=true

To enabled/disable short URLs:
shortenedurl.portal.tool.enabled=true

Of course, if using the short URLs, you'll want to have the shortened url service configured:
shortenedurl.implementation=org.sakaiproject.shortenedurl.api.RandomisedUrlService

(or the bit.ly implementation, or any other. See also: https://confluence.sakaiproject.org/display/SHRTURL/Home)

Then, once enabled, every tool gets the link icon which gives the little window when clicked. If you didn't want to have this on a certain tool, set this property on the tool:
sakai:tool-directurl-enabled=false
SAK-21865 - Getting issue details... STATUS
10.0Resources/Web Contentcontent.make.site.page which is set to false SAK-21855 - Getting issue details... STATUS
Allow users to quickly create a Web Content tool in a site from within the resource tool of the site.
10.0Site creation
The properties introduced by this patch are "worksiteSetup.omitSiteCreateLink" and "worksiteSetup.omitCourseSectionLink". Valid values are "true" and "false", where true will hide the links, and false will show them as normal. If the properties are not found, or an invalid value is provided, it defaults to original functionality (links are shown as normal).
SAK-21706 - Getting issue details... STATUS
10.0Login# Enable the auth choice page. Only set this if container.login=true 
login.auth.choice=true 

And configure it with these properties: 

# Set the icon or text you want for each. Generally you wouldn't use both. 
container.login.choice.icon=http://path/to/image/for/container/login/cas.jpg 
#container.login.choice.text=ANU Users 
xlogin.choice.icon=http://path/to/image/for/container/login/sakai.jpg 
#xlogin.choice.text = Guest Users 

login.use.xlogin.to.relogin=false
SAK-21706 - Getting issue details... STATUS

If you use container login and hit the gateway page, then you get the ability to login with either a CAS account or an internal account.

There should be an intermediate page where users can choose which auth to use.


10.0ScheduleTo enable this you set the Sakai property: 

ical.opaqueurl.subscribe=true 

this is set to false by default
SAK-21497 - Getting issue details... STATUS This patch implements "private URLs" for all site calendars. These are unique non guessable URLs (one per user) that one can subscribe to in all calendaring clients (including MS Outlook). This means that a calendar does not have to be exported (ie, made public) in order to subscribe to it. Marge calendars will appears in the ical feed and there is a link on the synoptic view.
10.0
This patch allows an admin to specify additional user attributes when creating or editing a user.

This is configured via sakai.properties as below.

The first section specifies the number of attributes and their keys. The second maps the key to the display value. There can be any number of attributes.

The user is then presented with a text box to fill in the value of the attribute.

user.additional.attribute.count=3
user.additional.attribute.1=att1
user.additional.attribute.2=att2
user.additional.attribute.3=att3

user.additional.attribute.display.att1=Attribute 1
user.additional.attribute.display.att2=Attribute 2
user.additional.attribute.display.att3=Attribute 3

For example:

user.additional.attribute.count=2
user.additional.attribute.1=college
user.additional.attribute.2=room

user.additional.attribute.display.college=College
user.additional.attribute.display.room=Room No

These tie directly in with the user properties for a user, so then show up in the (new for 2.9) 'Properties section' at the bottom. You can also remove the attributes using the X.
SAK-21406 - Getting issue details... STATUS
10.0Announcementssakai.announcement.reorder=true (default) SAK-21109 - Getting issue details... STATUS
10.0Quartz configuration
qrtzPropFileSakai@org.sakaiproject.api.app.scheduler.SchedulerManager 

which defaults to "sakai.quartz.properties" and is loaded relative to the sakai.home folder.
SAK-20885 - Getting issue details... STATUS
We still always load quartz.properties from the classpath which is included in the JAR, if there are any problems loading this file we stop (as before). 
Then we look for sakai.quartz.properties in the sakai.home folder and if found load that as well replacing any already loaded properties, if the file exists and there is a problem loading this it is logged but startup continues. 

We still have: 

qrtzPropFile@org.sakaiproject.api.app.scheduler.SchedulerManager 

which sets the file to load from the classpath but we also now have 

qrtzPropFileSakai@org.sakaiproject.api.app.scheduler.SchedulerManager 

which defaults to "sakai.quartz.properties" and is loaded relative to the sakai.home folder.
10.0Sites
qrtzPropFileSakai@org.sakaiproject.api.app.scheduler.SchedulerManager 

which defaults to "sakai.quartz.properties" and is loaded relative to the sakai.home folder.
SAK-20885 - Getting issue details... STATUS
10.0SitesThe sakai.properties: 
# enable soft site deletions when a site is deleted normally 
# if true, they will be softly delete and then purged after 30 days 
# if false, thet will be deleted immediately 
# defaults to false. 
site.soft.deletion=true 

# the number of days to keep softly deleted sites until they are purged. 
# if not set and site.soft.deletion=true, defaults to 30 days. 
site.soft.deletion.gracetime=30 
SAK-19952 - Getting issue details... STATUS
10.0Email Archive

default is true

wsetup.mailarchive.prepopulate.email=(true|false)

SAK-19298 - Getting issue details... STATUS
10.0AssignmentsThis adds an extra checkbox to the download assignments page when "assignment.download.flat=true" is added to the sakai.properties. Otherwise it has no real impact.  SAK-19147 - Getting issue details... STATUS
10.0Site Info1. sakai.properties (see new properties below) 
2. toolOrder.xml (see attached example) 
3. tools.properties -- (optional) sakai/config/localization/bundles/src/bundle/org/sakaiproject/localization/bundle/tool/tools.properties (see attached example) 
    ** tools.properties in sakai trunk currently has tool group pre-defined, you only need to modify this in order to customize 


Additions to sakai.propeties, with default values specified: 

# Enable tool groups 
config.sitemanage.useToolGroup=false|true 

# OPTIONAL: Directory for tool 'more info' link. HTML(<body> content) file must have the same name as the tool registration id, with any extension (e.g. sakai.siteinfo.html) 
config.sitemanage.moreInfoDir=library/image/ 
SAK-16600 - Getting issue details... STATUS On the edit tools page for site info, there is potential to have a long, unorganized list of tools. This will increase as new tools are added from contrib or Basic LTI.

This proposal describes how Sakai core tools, contrib tools, and dynamically added Basic LTI ('external') tools can be ordered into pre-defined tool groups. A "more info" link can optionally be added to each tool description, where a tool-specific screenshot can provide additional information. 

Different sets of groups can be configured for different site types (e.g. course, project). The category keyword is required. 
    <group name="core-c" category="course"> 
           ... 
    </group> 
    <group name="core-p" category="project"> 
           ... 
    </group> 

A sample toolOrder.xml file leveraging the new format is attached, along with an sample tools.properties file, updated with tool group localizations. The changes are backward compatible; i.e. if the original toolOrder.xml file format is used, none of the new toolGroup enhancements are displayed. 
10.0Login

### 
 # Url to redirect the user to when they have been disabled. If you do not specify a disabledSiteUrl then the system will use /portal/disabled by default


 ### 
 disabledSiteUrl=https://this.user.is.disabled/disabled

SAK-16499 - Getting issue details... STATUS

It has been requested that a user account should be able to be locked to prevent login, rather than deleting the user. A flag could be added to the User object to track this. The login tools and UserDirectoryService methods could then read this and deny access if a user account is locked.

Currently a new column has been added to the sakai_user table for disabled. This is either 1 or 0, 1 = disabled.

If a user is disabled, then you can select where to have the user redirected to via this sakai.property

###
# Url to redirect the user to when they have been disabled
###
disabledSiteUrl=https://this.user.is.disabled/disabled

If you do not specify a disabledSiteUrl then the system will use /portal/disabled by default. You can go and create a public /portal/disabled site/page for this purpose.

10.0Joinable sitesWhen directly visiting a joinable site allow the user to join. 

This means if a user visits a site which they aren't currently a member of, but the site is joinable then they will be given the option to join the site. If they choose to they will be added to the site and then taken to the site they have just joined. 

To disable this functionality set portal.redirectJoin=false in sakai.properties. 
SAK-15832 - Getting issue details... STATUS
10.0Gradebook# Controls the display of the "Total Points" column on the overview screen. 
# DEFAULT: false (Total Points column is not shown) 
#gradebook.display.total.points=false
SAK-14519 - Getting issue details... STATUS
10.0Portal

Changing property flag, added property to enable/disable 

 Default is true
portal.show.time=false 

SAK-7802 - Getting issue details... STATUS
10.0Rosterroster_view_email=true  RSTR-64 - Getting issue details... STATUS Email addresses can be sensitive in some institutions and should be able to be turned off completely. Once enabled, the instructor can enable permissions based on role.
10.0Roster# Set the list of roles that are visible in the tool. 
# This is useful for filtering the list from helpdesk roles, for example. 
# Access to the tool is not affected, ie the helpdesk user would still have access. 
# If not set, all roles will be visible. 
roster2.visibleroles.count=1 
roster2.visibleroles.1=access 
RSTR-55 - Getting issue details... STATUS Hide certain roles, for example helpdesk roles. They will still have access to the tool if their permission allows, but not be visible in the list for students to see.
10.0Profile

Messaging enabled is the default.

profile2.messaging.enabled=(true|false) 

PRFL-840 - Getting issue details... STATUS Some schools may be concerned about the potential for cheating via private messaging in Profile2. The tool can be configured to disable messaging globally in a Sakai instance.
10.0Profile

Now supports ONE_DEEP which is of the form BASEDIR/s/steve.jpg, which is additive to previous property (from PRFL-682)

# If you are using filesystem as your photo source you need to set this to the base directory where you store 
# them. Profile looks them up by appending the first letter of a user's eid then a slash, then the second 
# letter of the eid followed by a slash and finally the eid suffixed by '.jpg'. 
# Like this: 
# /official-photos/a/d/adrian.jpg 
#profile2.official.image.directory=/official-photos

PRFL-834 - Getting issue details... STATUS

(see PRFL-831)

The filesystem storage of official images added in PRFL-682 requires a certain layout. Some people dont have this layout so we need to be able to support more types of layouts. We wont go so far as to make this fully customisable as it is overkill, but make it easy for different layouts to be used. 

Adding a new layout for 'one deep'.
10.0Profile

#default is profile.official.image.enabled=false . See completed documentation in Sakai default properties.

profile2.official.image.enabled=true 
profile2.picture.type=official 
profile2.official.image.source=filesystem 
profile2.official.image.directory=/Users/steve/dev/sakai/official-images 
profile2.official.image.directory.pattern = ALL_IN_ONE

PRFL-831 - Getting issue details... STATUS You can now override the pattern for storing official images on the filesystem. 

First, enable official images. 
profile2.official.image.enabled=true 

In this case we want the default to be official and the user cannot change the image (for different settings seeProfile2-Settings) 
profile2.picture.type=official 

Now set the source: 
profile2.official.image.source=filesystem 

Now set the base directory. Defaults to /profile-images if not set 
profile2.official.image.directory=/Users/steve/dev/sakai/official-images 

Now set the pattern we want to use. We have all of our images in one directory and all images are of the form eid.jpg (ie jsmith26.jpg) so we choose the ALL_IN_ONE pattern. 
profile2.official.image.directory.pattern = ALL_IN_ONE 

This defaults to DEFAULT which means the pattern /j/s/jsmith26.jpg (ie two sub directories, one character each being the first two letters of the user eid. 

So all together we get: 
profile2.official.image.enabled=true 
profile2.picture.type=official 
profile2.official.image.source=filesystem 
profile2.official.image.directory=/Users/steve/dev/sakai/official-images 
profile2.official.image.directory.pattern = ALL_IN_ONE
10.0Profile
################################
## Available as of version 1.6:
################################
 
# Enable/disable the staff profile feature? (true/false, default true)
profile2.profile.staff.enabled=true

# Enable/disable the student profile feature? (true/false, default true)
profile2.profile.student.enabled=true

# Enable/disable the social profile feature? (true/false, default true)
profile2.profile.social.enabled=true

# Enable/disable the interests profile feature? (true/false, default true)
profile2.profile.interests.enabled=true
PRFL-807 - Getting issue details... STATUS
10.0Profile
# Convert images from URL to local storage (added in PRFL-740)
profile2.import.images=true
PRFL-740 - Getting issue details... STATUS
10.0Cacheing# Events and Role Caching - uses a distributed cache to propagate events and roles, rather than reading from the database 
# Data is still persisted to the database 
# Enable distributed caching 
# DEFAULT: false 
#cluster.cache.enabled=false 

# The URLs of the distributed cache servers 
#cluster.cache.server.urls.count=2 
#cluster.cache.server.urls.1={CACHE_SERVER_URL_1}:9510 
#cluster.cache.server.urls.2={CACHE_SERVER_URL_2}:9511 
  
# The caches that will be using the distributed cache. 
# The only ones allowed are eventsCache, eventLastCache, and org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache 
#cluster.cache.names.count=2 
#cluster.cache.names.1=org.sakaiproject.event.impl.ClusterEventTracking.eventsCache 
#cluster.cache.names.2=org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache 
  
# Any Cache properties below that are not set will use the default value 
  
# Events caching properties 
#org.sakaiproject.event.impl.ClusterEventTracking.eventsCache.cache.maxEntriesLocalHeap=100000 
#org.sakaiproject.event.impl.ClusterEventTracking.eventsCache.cache.timeToIdle=120 
#org.sakaiproject.event.impl.ClusterEventTracking.eventsCache.cache.timeToLive=120 

# eventLastCache caching properties (only needs to ever store 1 entry) 
#org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache.cache.maxEntriesLocalHeap=1 
#org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache.cache.timeToIdle=400 
#org.sakaiproject.event.impl.ClusterEventTracking.eventLastCache.cache.timeToLive=800 

# Role and Group caching properties 
#org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache.cache.maxEntriesLocalHeap=100000 
#org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache.cache.timeToIdle=2000 
#org.sakaiproject.authz.impl.DbAuthzGroupService.realmRoleGroupCache.cache.timeToLive=2400 
KNL-1184 - Getting issue details... STATUS
10.0Serializing Objects
## Session Replication settings 
## WARNING: This requires a distribution mechanism of some kind (currently requires a distributed cache) 
## NOTES: 
## cache: org.sakaiproject.tool.impl.RebuildBreakdownService.cache must be set to a distributed cache (see memory.cluster) 
## cache: org.sakaiproject.tool.impl.RebuildBreakdownService.stash should be configured to last as long 
## as your user might need to navigate to JSF or other on-demand session tools after landing on a new server 
# Enable session cluster replication (see notes above) 
# Default: false 
#session.cluster.replication=true 
## Performance tuning settings below - be careful with these numbers as adjusting them downward can create heavy load 
# Tuning setting, minimum seconds old the session must be before it will be replicated 
# Default: 20 
#session.cluster.minSecsOldToStore=20 
# Tuning setting, minimum seconds that must pass before session data is updated (since last store) 
# NOTE: certain events will cause the session data to be updated in the store regardless of this setting 
# Default: 10 
#session.cluster.minSecsBetweenStores=10 
# Tuning setting, minimum seconds after a session has been rebuilt from the store before it can be updated in the storage again 
# Default: 30 
#session.cluster.minSecsAfterRebuild=30
KNL-1163 - Getting issue details... STATUS
10.0Formatted Text scansAdded options to default config 

KNL-1075: allow Sakai to behave more like other LMSes and silently clean the user-entered HTML, 
# valid options are listed below: 
# - none - errors are completely ignored and not even stored at all 
# - logged - errors are output in the logs only 
# - return - errors are returned to the tool (legacy behavior) 
# - notify - user notified about errors using a non-blocking JS popup 
# - display - errors are displayed to the user using the new and fancy JS popup 
# Default: notify 
#content.cleaner.errors.handling = return 
# Force the logging of errors despite the handling setting 
# (useful for debugging but can get very noisy) 
# Default: false 
#content.cleaner.errors.display = true
KNL-1075 - Getting issue details... STATUS
10.0Learning Record Store

# Default: false 
#lrs.enabled=true 


# Default: No filters (all statements processed) 
#lrs.origins.filter=tool1,tool2,tool3


KNL-1042 - Getting issue details... STATUS #########################################################################
# LRS (TinCanAPI / Experience API) 
# ######################################################################## 

# Enable LRS processing 
# Default: false 
#lrs.enabled=true 

# Enable statement origin filters (cause certain statements to be skipped based on their origin) 
# NOTE: most origins are the names of the tools. e.g. assignments, announcement, calendar, chat, content, gradebook, lessonbuilder, news, podcast, syllabus, webcontent, rwiki 
# Default: No filters (all statements processed) 
#lrs.origins.filter=tool1,tool2,tool3
10.0Sakai properties

# Example: tool.categories.append.sakai.announcements=course 
# Default: use the categories defined in the tool xml file 
# tool.categories.append.{toolid}=category1,category2,category3 

## (2) Override the current tool categories with a new set of categories (removes all categories if it is blank) 
# Example: tool.categories.sakai.announcements=course,project 
# Default: use the categories defined in the tool xml file 
# tool.categories.{toolid}=category1,category2,category3

KNL-1031 - Getting issue details... STATUS ## Override/Append Sakai Tool categories 
# NOTE: categories are also set in the sakai tool xml files in each tool 
# Normally, if you want to add a new category (site type) to a tool, you have to change the /tools/toolid.xml file. 
# This config option adds 2 ways to adjust the categories. The first is to append new categories to any 
# already defined for the tool. The second is to override any categories set for the tool with a new set. 
## (1) Append the categories to the existing set of categories (has no effect if it is blank) 
# Example: tool.categories.append.sakai.announcements=course 
# Default: use the categories defined in the tool xml file 
# tool.categories.append.{toolid}=category1,category2,category3 
## (2) Override the current tool categories with a new set of categories (removes all categories if it is blank) 
# Example: tool.categories.sakai.announcements=course,project 
# Default: use the categories defined in the tool xml file 
# tool.categories.{toolid}=category1,category2,category3
10.0Log indisabledSiteUrl = default to blank. If blank, then redirects user to xlogin with warning message. If set, it will redirect to this URL after the disabled user attempts to log in KNL-994 - Getting issue details... STATUS
10.0Sakai properties# ######################################################################## 
# CONFIGURATION 
# ######################################################################## 

... 

# Control the dereferencing of configuration values on initial load 
# (values are always dereferenced but this affects whether they are done on config load or not) 
# Dereferencing values means that all values like "${property.name}" are replaced 
# with the value from the config item of that name (unmatched ones are left as is) 
# Default: true (dereference all values loaded from the config properties files) 
#config.dereference.on.load.initial=false 
# Default: false (do not dereference all values including those loaded from other sources - e.g. database) 
#config.dereference.on.load.all=true
KNL-924 - Getting issue details... STATUS
10.0SSL

# Otherwise, the URLs will reflect the attributes of the request URL. (443 | 8443 | or any other port)
# Default: no secure port or protocol (https) will be used, setting this to 0 will have the same effect as not setting it
#force.url.secure=443

KNL-895 - Getting issue details... STATUS
10.0Mime types

# Turn on mime type detection
# DEFAULT: true (on)
# content.useMimeMagic=false

KNL-101 - Getting issue details... STATUS Useful for downloading files which are missing extensions/file typing from Resources and other tools in Sakai.

 

2.0 New/changed permissions

Release

Tool/Service

Permission

Notes

Jira
10.0Schedulecalendar.options

Permission in the synoptic calendar tool in order to configure if a user has/ has not the rights to edit the options.

SAK-22549 - Getting issue details... STATUS
10.0Chatportal.chat.permittedAllow institutions to prevent certain roles, like guests, from participating in site chat rooms. SAK-23259 - Getting issue details... STATUS
10.0Realmsrealm.view.allAbility to view realms but not modify them. SAK-22585 - Getting issue details... STATUS






3.0 Stealthed Tools

OSP (Portfolios) is not stealthed, but it the creation of a Portfolio site is off by default. OSP will be removed in Sakai 11 and deprecated to a Contrib tool.