diff --git a/Workbench/grouper_daemon/container_files/tmp/initialize.gsh b/Workbench/grouper_daemon/container_files/tmp/initialize.gsh
index 67ebc1a..31ccd9c 100644
--- a/Workbench/grouper_daemon/container_files/tmp/initialize.gsh
+++ b/Workbench/grouper_daemon/container_files/tmp/initialize.gsh
@@ -30,4 +30,57 @@ idmfans = new GroupSave(gs).assignName("app:mailinglist:idm-fans").assignCreateP
cs = new GroupSave(gs).assignName("app:cs").assignCreateParentStemsIfNotExist(true).save()
volunteers = new GroupSave(gs).assignName("test:volunteers").assignCreateParentStemsIfNotExist(true).save()
+
+group = new GroupSave(gs).assignName("etc:affiliationLoader").assignCreateParentStemsIfNotExist(true).save()
+group.addType(GroupTypeFinder.find("grouperLoader"))
+group.setAttribute("grouperLoaderDbName", "sis")
+group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST")
+group.setAttribute("grouperLoaderScheduleType", "CRON")
+group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?")
+group.setAttribute("grouperLoaderDbName", "sis")
+group.setAttribute("grouperLoaderGroupTypes", "addIncludeExclude")
+group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:affiliation:',affiliation,'_systemOfRecord') as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_AFFILIATIONS")
+
+group = new GroupSave(gs).assignName("etc:deptLoader").assignCreateParentStemsIfNotExist(true).save()
+group.addType(GroupTypeFinder.find("grouperLoader"))
+group.setAttribute("grouperLoaderDbName", "sis")
+group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST")
+group.setAttribute("grouperLoaderScheduleType", "CRON")
+group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?")
+group.setAttribute("grouperLoaderDbName", "sis")
+group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:dept:',department) as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_PERSONS where department is not null")
+
+group = new GroupSave(gs).assignName("etc:coursesLoader").assignCreateParentStemsIfNotExist(true).save()
+group.addType(GroupTypeFinder.find("grouperLoader"))
+group.setAttribute("grouperLoaderDbName", "sis")
+group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST")
+group.setAttribute("grouperLoaderScheduleType", "CRON")
+group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?")
+group.setAttribute("grouperLoaderDbName", "sis")
+group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:course:',courseId) as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_COURSES")
+
+edu.internet2.middleware.grouper.app.loader.GrouperLoaderType.scheduleLoads()
+
+
+
+def addGroups(gs,stem,owner,regexp) {
+ for (group in stem.childGroups) {
+ if (!group.name.endsWith('_includes') &&
+ !group.name.endsWith('_excludes') &&
+ !group.name.endsWith('_systemOfRecord') &&
+ !group.name.endsWith('_systemOfRecordAndIncludes') &&
+ (regexp == null || group.extension ==~ regexp)) {
+ println 'Adding: ' + group
+ def s = SubjectFinder.findById(group.getId(), 'group', 'g:gsa')
+ owner.addMember(s, false)
+ } else {
+ println 'Ignoring: ' + group
+ }
+ }
+}
+
+def cs = GroupFinder.findByName(gs, "app:cs", true)
+
+addGroups(gs, StemFinder.findByName(gs, 'ref:course'), cs, /CS.*/)
+
System.out.println("************** initialize.gsh done.")
diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml
new file mode 100644
index 0000000..58189c0
--- /dev/null
+++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/996-task-import-sis-persons.xml
@@ -0,0 +1,34 @@
+
+ Import from SIS persons
+
+ account
+ ri:AccountObjectClass
+
+
+
+
+
+ 1535407239440-0-1
+
+ runnable
+ ImportingAccounts
+
+ single
+ loose
+
diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml
new file mode 100644
index 0000000..5007ae4
--- /dev/null
+++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/997-task-async-update-grouper.xml
@@ -0,0 +1,40 @@
+
+
+
+ Grouper async updates
+
+ 1
+
+
+
+
+ 1552664339630-0-2
+
+
+
+ runnable
+ AsynchronousUpdate
+
+
+
+ single
+ loose
+ restart
+
diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml
new file mode 100644
index 0000000..4e024cc
--- /dev/null
+++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/998-task-reconciliation-grouper-groups.xml
@@ -0,0 +1,41 @@
+
+
+
+ Grouper reconciliation (groups)
+
+ ri:Group
+
+
+
+
+ 605a0127-a313-442a-9d5e-151eac8b0745
+
+
+
+ runnable
+ Reconciliation
+
+
+
+ single
+ loose
+ restart
+
diff --git a/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml
new file mode 100644
index 0000000..179b565
--- /dev/null
+++ b/Workbench/midpoint_server/container_files/mp-home/post-initial-objects/tasks/999-task-recomputation-users.xml
@@ -0,0 +1,22 @@
+
+ User recomputation
+
+ c:UserType
+
+
+
+
+
+ 1571729899646-0-1
+
+
+
+ http://midpoint.evolveum.com/xml/ns/public/provisioning/channels-3#recompute
+ runnable
+ Recomputation
+ single
+ tight
+