Installation and Startup

Cepter is provided pre-configured in the default installation with the developer portal - no additional installation is needed.

Installation

The developer portal is located in the standard Ceptor (portalprotect) home directory under the folder ppserver/developerportal. This folder contains everything needed (except for the pp/lib folder) to run the web application.

The web application is part of the standard distribution.

Starting Developer Portal

The developer portal is started using a Ceptor launcher. In the default installation it comes with its own launcher file config/ceptor_launch_developerportal.xml which can either be used to start up the developer portal by it self on its own server or the launch configuration in config/ceptor_launch.xml can be used so the developer portal starts with the rest of Ceptor.

The standard launcher that comes with the Ceptor distribution is as such:

ceptor_launch_developerportal.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Ceptor Launcher configuration -->
<portalprotectlauncher port="28211"
	launcherclasspath="classes/launcher;lib/PortalProtectAgent.jar;extlib/logback-core-1.2.1.jar;extlib/logback-classic-1.2.1.jar;extlib/slf4j-api-1.7.24.jar" jvmstartdelay="5">
	<!-- Ceptor API Developer Portal -->
	<jvm name="apideveloperportal" vmargs="-Xmx1024M -Xnoclassgc -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError">
        <config servers="nios://localhost:21233?validateservercert=false" />
        <classloader name="con" extraclasspath="">
            <service name="apideveloperportal" launcherclass="io.ceptor.apimanager.developerportal.DeveloperPortalLauncher">
                <property name="sessioncookiename" value="jsession_ceptordeveloperportal"/>
                <webserver webapp="${portalprotect.home}/ppserver/developerportal"
                    contextpath="/"
                    bindaddress="0.0.0.0" httpport="4848" sslport="4843" minthreads="2" maxthreads="32"
                    maxpostsize="67108864" maxidletime="10000"
                    responseheadersize="32768"
                    outputbuffersize="32768" keystoretype="JKS"
					keystore="${portalprotect.home}/ppserver/portalprotect.key"
					password="changeit" 
                    />
            </service>
        </classloader>
	</jvm>
</portalprotectlauncher>


As written above it can be merged with other launchers or started as standalone. This is up to the individual environment setup and deployment.

The default ceptor_launch.xml launcher configuration file starts the API Developer Portal on the context path /apideveloperportal - this matches the default Ceptor Gateway configuration, which forwards all calls to /apideveloperportal to the API Developer Portal server running on port 4843.


Configuration

The developer portal requires only a few lines of configuration in the ceptor-configuration.xml in order to start up. The standard distribution comes pre-configured and can be changes as needed. Details for all configuration can be found in the configuration reference.

ceptor-configuration.xml
	<server name="apideveloperportal" type="apideveloperportal" description="Settings for API management developerportal" extends="apimanagement,applications,elasticsearch">
		<group name="agent" description="Agent Settings">
			<property name="email.confirmation" value="false" description="true/false value defining whether or not to send an email for confirmation during registration"/>
			<property name="portal.useradmin.schema" value="" description="The useradmin schema to put developer portal user in (if any)"/>
			<property name="sessioncontrollers" value="nios://localhost:21343?validateservercert=false" description=""/>
			<property name="remoteuser.support" value="false" description="true/false value to support session through the remote user from a webserver agent plugin (as of 6.0.2)"/>
			<property name="session.logoffurl" value="/logoff" description="Put a log off URL here to log off the session if derived from a gateway in front of the developer portal"/>
			<property name="session.profileurl" value="" description="Put a profile URL (or path) here to link to a profile view for a users where the session is derived from a gateway in front of the developer portal (as of 6.3)"/>
			<property name="sessioncookie.name" value="ppSessionId" description="The name of the session cookie to look for if placed behind a Gateway (as of 6.0.2)"/>
			<property name="standalone.support" value="false" description="true/false value indicating support for the developer portal to run alone and handle login by it self (as of 6.0.2)"/>
		</group>
		<group name="captcha" description="Captcha application settings">
			<property name="captcha.secret.key" value="6LcBRksUAAAAAN9OTCLglrModvDFHym-h2k0MHyd" description=""/>
			<property name="captcha.site.key" value="6LcBRksUAAAAAENQkFW-3ptWBq_ldTwRk3iHoBMa" description="key label for test/demo: &apos;captor api management developer portal&apos;"/>
		</group>
		<group name="html" description="HTML application settings">
			<property name="html.noconnection" value="noconnection/noconnection.html" description="No-connection page showed on the front page"/>
			<property name="html.startup" value="startup/startup.html" description="Startup page showed on the front page"/>
			<property name="html.welcome" value="welcome/welcome.html" description="Welcome HTML showed after login"/>
		</group>
		<group name="styling" description="Other application style settings">
			<property name="portal.logo" value="../devportaltheme/img/ceptor.svg" description="Logo shown in the login dialog and menu"/>
			<property name="portal.showwelcome" value="false" description="true/false - show the welcome page after login"/>
			<property name="portal.title" value="&lt;h3&gt;Ceptor API Developer Portal&lt;/h3&gt;" description="Title shown at the top of the menu"/>
		</group>
	</server>


It is vital that the apideveloper portal entry extends the apimanagement in order to share settings for open api testing (oauth, etc). In the default distribution it extends the "applications" as well - this provides a common basis for accessing the user administration server which is used to retrieve and store developer information during login and registration.

The developer portal also requires the session controller to have two authentication plugins.

  • EmailUAAuthenticationPlugin - for supporting email registration (if enabled)
  • ConfigServerAuthenticationPlugin - for supporting creating sessions for the logged in users for use in useradmin


Other than that - the developer portal is a standalone application that can run directly as is or be installed behind a gateway for example. If the Gateway logs the user in - the front page of the developer portal will not be shown, as the gateway will handle login and deliver an authenticated session to the developer portal. 

Elasticsearch configuration for the developer portal will allow the developer portal to show API Usage information from elastic search for individual API Partner applications. The default installation has this configuration enabled.



© Ceptor ApS. All Rights Reserved.