Skip to content
Zowe API Mediation Layer
Java JavaScript CSS Shell HTML Python
Branch: master
Clone or download
Latest commit b5a51aa Nov 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Nov 20, 2019
.licence initial commit to the zowe org Oct 30, 2018
api-catalog-services Private/cleanup apicatalog our code (#437) Nov 14, 2019
api-catalog-ui Private/cleanup apicatalog our code (#437) Nov 14, 2019
apiml-auth Spring security client and catalog authentication (#343) Jul 30, 2019
apiml-common Private/cleanup apicatalog our code (#437) Nov 14, 2019
apiml-security-common Private/cleanup apicatalog our code (#437) Nov 14, 2019
codequality/checkstyle Fix of high cpu usage occurence replicated in Broadcom based on GIT i… Jul 8, 2019
common-service-core Private/cleanup apicatalog our code (#437) Nov 14, 2019
config disable banner based on proposal in https://github.com/zowe/zlc/issue… ( Aug 1, 2019
dco_signoffs Create Dan Kelosky-api-layer.txt (#310) Jun 18, 2019
discoverable-client Clean up Gateway - our code (#417) Nov 4, 2019
discovery-service Private/cleanup apicatalog our code (#437) Nov 14, 2019
docs Private/cleanup apicatalog our code (#437) Nov 14, 2019
gateway-service Private/cleanup apicatalog our code (#437) Nov 14, 2019
gradle add license to jar files (#352) Sep 17, 2019
helloworld-expressjs Trust z/OSMF and external certificates (#152) Dec 13, 2018
helloworld-jersey Gateway authentication (#284) May 10, 2019
helloworld-spring Gateway authentication (#284) May 10, 2019
integration-enabler-java New Eureka metadata definition and consumption - Translation Service (#… Sep 12, 2019
integration-enabler-spring-v1-sample-app New Eureka metadata definition and consumption - Translation Service (#… Sep 12, 2019
integration-enabler-spring-v1 Cleanup of Discovery Service (our code) (#407) Oct 18, 2019
integration-enabler-spring-v2 Cleanup of Discovery Service (our code) (#407) Oct 18, 2019
integration-tests Cleanup of Discovery Service (our code) (#407) Oct 18, 2019
keystore adjust logbackformat to latest agreement (#328) Jul 4, 2019
scripts change label selection strategy (#295) Jun 14, 2019
security-service-client-spring Private/cleanup apicatalog our code (#437) Nov 14, 2019
zlux-api-catalog Add z/OSMF provider (#184) Jan 12, 2019
zowe-install typo in startup script in gateway (#427) Nov 1, 2019
.adr-dir New ADR format (#265) Mar 13, 2019
.codecov.yml Updating coverage settings to match the current state (#385) Sep 16, 2019
.editorconfig initial commit to the zowe org Oct 30, 2018
.gitignore Fix critical NPM vulnerability and gradle problem (#429) Nov 5, 2019
Api-Layer-Java.ppf Add Appscan config files(as branch) (#344) Sep 9, 2019
Api-Layer-Javascript.ppf Add Appscan config files(as branch) (#344) Sep 9, 2019
CONTRIBUTING.md Spring security client and catalog authentication (#343) Jul 30, 2019
Jenkinsfile Speedup UI build (#387) Nov 1, 2019
LICENSE initial commit to the zowe org Oct 30, 2018
README.md Fix critical NPM vulnerability and gradle problem (#429) Nov 5, 2019
build.gradle Speedup UI build (#387) Nov 1, 2019
gradle.properties [Gradle Release plugin] Create new version: 'v1.2.0-SNAPSHOT'. Nov 8, 2019
gradlew Gateway authentication (#284) May 10, 2019
gradlew.bat Gateway authentication (#284) May 10, 2019
lombok.config initial commit to the zowe org Oct 30, 2018
package-lock.json Fix critical NPM vulnerability and gradle problem (#429) Nov 5, 2019
package.json Fix critical NPM vulnerability and gradle problem (#429) Nov 5, 2019
settings.gradle Improve usability of authentication client (#349) Aug 14, 2019

README.md

API Mediation Layer

Build Status

codecov SonarQube

The home of Zowe API Mediation Layer

Prerequisites

Following platform is required to run the API Mediation Layer:

Other development prerequisites

Following tools are required to build and develop API Mediation Layer:

Nodejs and npm are required to be installed globally to be able to build the API Catalog ui

Quick start

  1. Install the package manager pnpm globally in order to build the project:

     npm add -g pnpm
    
  2. Install concurrently globally:

    npm install -g concurrently
    
  3. Build all modules:

    ./gradlew build
    
  4. Run all service on local machine:

    npm run api-layer
    

Authentication service

The API Mediation Layer uses a dummy authentication provides as a default security provider for the development purposes. To log in, use user as username and password.

(Optional) z/OSMF Authentication

Perform the following steps to use the real authentication service:

  1. Configure a valid z/OSMF instance using the following sample configuration config/local/api-defs/zosmf-sample.yml.

  2. Modify gateway-service.yml with a z/OSMF configuration

apiml:
    security:
        auth:
            provider: zosmf
            zosmfServiceId: zosmfId  # Replace me with the z/OSMF service id

Ensure that the z/OSMF certificate is trusted by APIML. You have two options:

  1. Import the certificate to the APIML keystore using scripts/apiml_cm.sh --action trust as described at Trust certificates of other services

  2. Disable certificate validation. For more information, see Disabling certificate validation on localhost

Run unit tests

Unit tests for Java and TypeScript modules are executed as a part of the build process.

Measure code coverage

For the code coverage of all modules, run:

./gradlew coverage

The code coverage for new code should be higher that 60% and should not be decreased for existing code.

The reports in HTML format are stored build/reports/jacoco/test/html/index.html for each Java module.

For the code coverage of a single Java module (for example discovery-service), run:

./gradlew :discovery-service:jacocoTestReport

You can an individual test class by:

./gradlew :discovery-service:test --tests com.ca.mfaas.discovery.staticdef.ServiceDefinitionProcessorTest

Run integration tests

Follow the instructions in Integration Tests to run integration tests.

Security

For more information about how the certificates between APIML services are setup, see TLS Certificates for localhost.

Contributor guidelines

Follow the guidelines in Contributing to add new functionality.

Local configuration of services

Follow the guidelines in Local Configuration to set local environment properties for testing on your local machine include HTTPS setup.

Also if you use IntelliJ IDEA, see learn how to configure Run Dashboard to use these local configurations.

If you use Visual Studio Code, see how to configure it to develop and debug local configurations.

Adding services that does not support API Mediation Layer natively

See Adding Services to API Gateway without Code Changes.

API Catalog UI

For more information about the UI of the Catalog see its README.

You can’t perform that action at this time.