Project
Clone or download the source code from https://stash.uconn.edu/projects/KFS/repos/uconn-kfs.
...
Update liquibase.properties file with appropriate url, user and password
- Replace [env] in kfs/core/core-services-cf.sql with appropriate environment
Run kfs-runlog.sh to use liquibase to perform the updates.
Server Configuration
Add -Dadditional.kfs.config.locations="/srv/uconn_configs/kfs-external-config.properties" to VM arguments.
Tomcat
Additional jar files.
...
Code Block | ||
---|---|---|
| ||
# External Configuration Properties # ######################################## # Environment specific changes begin ######################################## #Set this to the deployed environment. Local=dev, updev=updev, ups=ups etc. environment=<envirment> #Set the KFS appserver url ## production appserver.url=https://kuali.uconn.edu ## any non production environment appserver.url=https://kualinp.uconn.edu ## local #appserver.url=http://localhost:8080 #Set based which rice environment is to be used with KFS. A local example is provided. rice.environment=<rice-env> rice.appserver.url=https:"//kualinp.uconn.edu<rice url> #rice.environment=dev #rice.appserver.url=http://localhost:8081 # set batch mode to false and kfs will publish services. Should be true if localhost rice.ksb.batch.mode=false ##rice.ksb.batch.mode=true ######################################## # Environment specific changes end ######################################## ## apis.enabled determines whether REST APIs are accessible from an outside client apis.enabled=true app.code=kfs application.host=${appserver.url} context.names.app=${app.code}-${environment} context.names.kfs=${app.code}-${environment} app.context.name=${context.names.app} base.url=${appserver.url} application.url=${appserver.url}/${context.names.kfs} application.id=KFS kfs.mode=LOCAL # this property can be used to turn p6spy logging on and off (we use p6spy to log the sql generated by ojb) use.p6spy=true # # Directories # base.directory=/srv/uconn_configs/kfs-config work.directory=${base.directory}/work staging.directory=${work.directory}/staging security.directory=${base.directory}/security staging.directory.sys.batchContainer=${staging.directory}/sys/batchContainer reports.directory=${work.directory}/reports security.property.file=file:${security.directory}/security.properties templates.directory=${work.directory}/templates config.url=${appserver.url}/${base.directory} reports.url=${appserver.url} temp.directory=${work.directory}/temp logs.directory=${base.directory}/logs monitoring.directory=${logs.directory}/monitoring attachments.directory=${base.directory}/work/attachments attachment.dir.location=${attachments.directory} attachments.pending.directory=${attachments.directory}/pending settings.directory=${base.directory}/settings data.xml.root.location=${base.directory}/work/staging/workflow data.xml.pending.location=${base.directory}/work/staging/workflow/pending data.xml.loaded.location=${base.directory}/work/staging/workflow/loaded data.xml.problem.location=${base.directory}/work/staging/workflow/problem log4j.settings.path=file:/srv/uconn_configs/kfs-config/log4j.properties log4j.settings.file=file:/srv/uconn_configs/kfs-config/log4j.properties keystore.file=/srv/uconn_configs/kfs-config/security/rice.keystore batch.file.lookup.root.directories=${base.directory}/work/staging;${base.directory}/work/reports temp.directory=${work.directory}/temp cache.service.bus.security.enabled=true contracts.grants.billing.enabled=false csrf.enabled=false kew.callback.service.bus.security.enabled=true dev.mode=false kfs.mode=LOCAL # necessary to include uconn module in embedded rice uconn.mode=LOCAL feedback.link.url= #jwt.expiration.seconds=86400 connection.pool.impl=BitronixXa datasource=kfsDataSource${connection.pool.impl} # kfs kfs.url=${application.url} kfs.externalizable.help.url=${externalizable.static.content.url} kfs.locale=en_US kfs.service.namespace.uri=http://kfs.kuali.org/kfs/v5_0 log4j.reload.minutes=5 login.filter.className=org.kuali.kfs.sys.web.filter.DevelopmentLoginFilter # # rice properties # context.names.rice=kr-${rice.environment} rice.server.url=${rice.appserver.url}/${context.names.rice} rice.url=${rice.server.url} rice.standalone=true rice.ksb.registry.serviceUrl=${rice.server.url}/remoting/soap/ksb/v2_0/serviceRegistry data.dictionary.validate=true validate.ebo.references=true classpath.resource.prefix=/WEB-INF/classes/ core.url=${rice.appserver.url}/${context.names.rice}/core rice.server.krad.url=${rice.appserver.url}/${context.names.rice}/kr-krad http.service.url=${rice.appserver.url}/${context.names.rice}/remoting rice.server.krad.lookup.url=${rice.appserver.url}/${context.names.rice}/kr-krad/lookup # System URLs serviceServletUrl=${application.url}/remoting ksb.client.url=${application.url}/ksb ksb.server.url=${rice.server.url}/ksb kr.url=${rice.server.url}/kr krad.url=${rice.server.url}/kr-krad kr.krad.url=${rice.server.url}/kr-krad kcb.url=${rice.server.url}/kcb ksb.url=${rice.server.url}/ksb ken.url=${rice.server.url}/ken krms.url=${rice.server.url}/krms kim.url=${rice.server.url}/kim workflow.url=${rice.server.url}/kew kew.url=${rice.server.url}/kew krad.lookup.url=${rice.server.url}/kr-krad/lookup krad.inquiry.url=${rice.server.url}/kr-krad/inquiry rice.portal.allowed.regex=^${application.url}(/.*|)|^${rice.server.url}(/.*|) rice.backLocation.allowed.regex=^(${application.url}|${rice.url}|${appserver.url})(/.*|) rice.backLocation.default.url=${application.url} #mail.smtp.connectiontimeout=10000 #mail.smtp.timeout=10000 #message.queue.url=MessageQueue.do module.access.security.enabled=true module.accounts.receivable.enabled=true module.capital.asset.enabled=true module.contracts.and.grants.enabled=true module.labor.distribution.enabled=true module.purchasing.enabled=true #periodic.thread.dump=true #periodic.thread.dump.seconds=300 production.environment.code=prd remote.view.url=${application.url}/remote #skip.batch.directory.initiation=false soap.service.default.service.bus.security.enabled=false #thread.pool.url=ThreadPool.do transaction.timeout=100000 rice.portal.links.showRiceServerConfig=true; # UCONN CAS server URL for rics cas.context.name=cas cas.url=https://login.uconn.edu/cas cas.login.url=${cas.url}/login cas.server.url.prefix=https://login.uconn.edu/cas cas.server.login.url=https://login.uconn.edu/cas/login cas.server.name=${application.url} cas.rice.server.name=${rice.server.url} cas.require.https=false cas.validate.password=false cas.validate.url=${cas.url}/serviceValidate cas.require.https" override="false=false cas.validate.password=false cas.rice.server.name=${appserver.url} rice.default.chart.code=UC # since rice is defaulting the environment to dev and not allowing override, we can't just use ${environment} build.environment=${environment} #kuali-monsters site had true rice.ksb.web.forceEnable=true workflow.documentsearch.base.url=${rice.server.url}/kew/DocumentSearch.do?docFormKey=88888888&returnLocation=${kfs.url}/portal.do&hideReturnLink=true externalizable.static.content.url=${application.url}/static externalizable.images.url=${externalizable.static.content.url}/images/ externalizable.help.url=${externalizable.static.content.url}/help/ kfs.externalizable.help.url=${externalizable.help.url} kr.externalizable.images.url=${application.url}/kr/static/images/ krad.externalizable.images.url=${application.url}/krad/images/ batch.transaction.timeout=500000 # Email Properties mail.relay.server=[[Please set this in your C:/Users/rlr15105/kfs-build.properties file.]] mailing.list.batch=[[Please set this in your C:/Users/rlr15105/kfs-build.properties file.]] kr.incident.mailing.list=[[Please set this in your C:/Users/rlr15105/kfs-build.properties file.]] KualiExceptionIncidentServiceImpl.REPORT_MAIL_LIST=[[Please set this in your C:/Users/rlr15105/kfs-build.properties file.]] mail.smtp.host=[[Please set this in your C:/Users/rlr15105/kfs-build.properties file.]] mail.transport.protocol=smtp real.notifications.enabled=true nonproduction.notification.mailing.list= # KIM Properties kim.soapExposedService.jaxws.security=false kim.identityArchiveServiceImpl.executionIntervalSeconds=600 kim.identityArchiveServiceImpl.maxWriteQueueSize=300 org.kuali.rice.kim.bo.ui.PersonDocumentEmploymentInfo.hidden=baseSalaryAmount kim.hide.PersonDocumentAddress.type=HM kim.hide.PersonDocumentPhone.type=HM kim.show.blank.qualifiers=true session.document.cache.size = 1000 # log4j file for Rice # Unifier Integration Properties unifier.security.enabled=false unifier.api.url=${unifier.test.api.url} # # # ldap mapping information # rice.ldapattr.entityId=uid rice.ldapattr.principalName=uid rice.ldap.principalAlwaysActive=true rice.ldapattr.firstName=givenName rice.ldapattr.middleName=initials rice.ldapattr.lastName=sn rice.ldapattr.fullName=cn rice.ldapattr.displayName=displayName rice.ldapattr.title=title rice.ldapattr.email=mail rice.ldapattr.phoneNumber=publishedTelephoneNumber rice.pattern.phoneNumberKimFormat=%s-%s-%s rice.ldapattr.date.of.birth=uconnPersonDateOfBirth rice.pattern.phoneNumberLdapRegex=.*([0-9]{3}).*([0-9]{3}).*([0-9]{4}) rice.ldapattr.employeeId=uconnPersonEmplID rice.ldapattr.payrollId=uconnPersonPayrollID rice.ldapattr.deptNumber=departmentNumber rice.ldapattr.deptName=uconnDepartment rice.ldapattr.employeeType= rice.ldapattr.employeeStatus= rice.ldap.employeeTypeMappings= rice.ldap.employeeStatusMappings=true=A,false=T rice.ldapattr.building=buildingName rice.ldapattr.street=street rice.ldapattr.postalAddr=postalAddress rice.ldapattr.city= rice.ldapattr.state= rice.ldapattr.country= rice.ldapattr.zipCode= rice.ldapattr.campus=l rice.ldapattr.primaryAffiliation=eduPersonPrimaryAffiliation rice.ldapattr.affiliation=eduPersonAffiliation rice.ldapattr.uconnPerson.affiliation=uconnPersonAffiliation rice.ldap.affiliationMappings=STAFF=staff,FCLTY=faculty,STDNT=student,AFLT=affiliate rice.ldap.campusMappings=Storrs=01,Hartford=02,Stamford=03,Torrington=04,Waterbury=05,Avery Point=06,Health Center=07,Extension Services=08 \u00a0 \u00a0 \u00a0 rice.ldap.cityZipMappings=Storrs=06269,Hartford=06117,Stamford=06901,Torrington=06790,Waterbury=06702,Avery Point=06340,Health Center=06030,Extension Services=000000 rice.ldap.defaultCampusCode= rice.ldap.defaultCityCode= rice.ldap.defaultStateCode=CT rice.ldap.defaultCountryCode=US rice.ldap.defaultZipCode= rice.ldapattr.unitNumber=uconnUnitNumber rice.ldapattr.uconnPublished=uconnPublished rice.ldapattr.uconnPublished.email=uconnPublishedEmail rice.ldap.objectClass=objectClass ## KPS-598 Jaggaer Single Sign On (SSO) - Roles and Orgs rice.ldapattr.personEntitlement=eduPersonEntitlement jaggear.urn=urn:sciquest.com:solutions.sciquest.com: rice.ldap.search.limit=5000 rice.ldap.ids.to.skip=2,KFS2,kr,kfs,admin,notsys rice.ldap.student.affiliation=student uconn.ldapService.jaxws.security=true skip.batch.directory.initiation=false # indicates whether schema validation should be built from data dictionary, otherwise validation is basic xsd types only use.dd.schema.validation=false # environmental display URL #env.display.text=uconn kfs local rice.kim.soapExposedService.jaxws.security=false rice.kim.employee.status.id=employee uconn.soapExposedService.jaxws.security=false uconn.ldapService.jaxws.security=true kim.soapExposedService.jaxws.security=false # the institution specific css files that should be available to every non-portal page in the application # IMPORTANT! The env.css might need to be removed in production. institution.portal.css.files=,css/uconn_portal.css,css/env.css unifier.production.security.enabled=true unifier.test.security.enabled=true unifier.production.api.url=http://pu.grove.ad.uconn.edu/UnifierWS unifier.test.api.url=http://puint.grove.ad.uconn.edu/UnifierWS userOptions.default.emailAgingNotification3=30 days # B2B Integration Propertiessys/api/v1/system/environment b2b.environment=test b2b.punch.back.action.forwarding.url=/portal.do?channelTitle=Requisition&channelUrl=purapRequisition.do?methodToCall=displayB2BRequisition b2b.punch.back.url=${application.url}/b2b.do?methodToCall=returnFromShopping b2b.punch.out.url=http://usertest.sciquest.com/apps/Router/ExternalAuth/cXML/UCONN b2b.purchase.order.url=https://usertest-messages.sciquest.com/apps/Router/POXMLImport # #Jaggaer Huskybuy url properties. b2b.prvalidation.url=${b2b.test.prvalidation.url} b2b.custom.field.url=${b2b.test.custom.field.url} b2b.supplier.sync.url=${b2b.test.supplier.sync.url} b2b.invoice.status.url=${b2b.test.invoice.status.url} b2b.user.url=${b2b.test.user.url} b2b.requisition.url=${b2b.test.requisition.url} b2b.jaggaer.url=${b2b.test.jaggaer.url} # # script runner repository.uri=https://stash.uconn.edu/scm/kfs/dbscripts.git repository.uri.test=https://stash.uconn.edu/scm/kfs/dbscripts-test.git repository.local=${base.directory}/work/git-repository/dbscripts repository.user=KFSScriptRunner repository.password=kFs@Scri9t3 kr.script.repository=kr-scripts kr.otf.script.file.path=${base.directory}/work/scriptRunner/kr_OtfScrips.sql kfs.script.repository=kfs-scripts kfs.otf.script.file.path=${base.directory}/work/scriptRunner/kfs_OtfScrips.sql script.archive.path=/archive sqlplus.service.name=@KFSORA.world #sqlplus.service.name=@KFSUPDEV.world sqlplus.path=/opt/oracleClient/product/12.2.0.1/client/bin/sqlplus # aim aim.api.url=${aim.test.api.url} unifier.api.url=${unifier.test.api.url} # # concur # aeweb.travel.test.url=https://dev.aeweb.uconn.edu:8058 aeweb.travel.prod.url=https://prd.aeweb.uconn.edu:8058 aeweb.hris.test.url=https://dev.aeweb.uconn.edu:8057 aeweb.hris.prod.url=https://prd.aeweb.uconn.edu:8057 aeweb.travel.api.url=${aeweb.travel.test.url} aeweb.hris.api.url=${aeweb.hris.test.url} ## gpg concur.gpg.public.key.file=${security.directory}/pubring.gpg concur.gpg.private.key.file=${security.directory}/secret-keys.gpg ## directories concur.archive.directory=${staging.directory}/concur/archive concur.export.directory=${staging.directory}/concur/export concur.import.directory=${staging.directory}/concur/import concur.extract.directory=${staging.directory}/concur/extract concur.sftp.import.directory=out/ concur.sftp.export.directory=in/ concur.encrypt.file.extension=.txt.gpg concur.decrypt.file.extension=.txt concur.oauth2.test.endpoint=https://us-impl.api.concursolutions.com/oauth2/v0/token concur.oauth2.prod.endpoint=https://us.api.concursolutions.com/oauth2/v0/token concur.oauth2.endpoint=${concur.oauth2.test.endpoint} concur.oauth2.location=us.api.concursolutions.com |
...