Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Project

Clone or download the source code from https://stash.uconn.edu/projects/KFS/repos/uconn-kfs.

...

  1. Update liquibase.properties file with appropriate url, user and password

  2. Replace [env] in kfs/core/core-services-cf.sql with appropriate environment
  3. 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
titlekfs-external-config.properties
# 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

...