This document describes the the file structure of the kb_sdk codebase.
build.xml- main Ant build configuration file for compiling, running tests, etc.bin/- holds the executable files generated on compilation (most importantly,kb-sdk)doc/- additional documentation about this codebaseDockerfile- the docker configuration for the container that runs the SDKentrypoint- the entrypoint bash script that is run for the SDK docker containerJAR_DEPSandJAR_DEPS_BIN- indexes of java jar dependenciesjavacc/- shell scripts used to generate code related to parsing KIDL specsKBaseJobService.spec- KIDL spec for a JSON RPC job servicelib- some generic libraries that get included in SDK appsMakefile- commands for compiling, building docker images, and initializing submodulesPipfileandPipfile.lock- python dependencies for pipenvreports/- files generated for JaCoCo test coverage reportssrc/- the main source code for this project; see belowsubmodules/andsubmodules_hacks- jars and other dependenciestest_scripts/- test helpers in perl, python, and js
catalog/- A client for the KBase catalog service compiled from the catalog service KIDL specificationcommon/executionengine/- Code for executing jobs and sub-jobs. All the code here is duplicated in thenjs_wrapperrepocommon/service/- Some tuple datatypescommon/utils/- NetUtils for working with IP addresses and portsjkidl/- Functionality for parsing KIDL spec fileskidl/- KIDL parser syntax typeskbasejobservice/- Mocks used in testing the narrative job servicemobu/- Module Builder (see below)narrativemethodstore/- A client for the KBase narrative method store service compiled from the NMS service KIDL specificationscripts/- Various test files - See the TypeGeneratorTest.java classtemplates/- Template files for use in generating SDK app codebases onkb-sdk inittools/- Some general java utilities
ModuleBuilder- handles CLI commands and dispatches them to one of the below packagescompiler/- parses the KIDL spec and compiles code in an SDK appinitializer/- Initializes a new app, generating all templated filesinstaller/- Installs other SDK apps as dependencies under the current onerenamer/- Renames an apprunner/- Runs an app in its docker container and the callback servertester/- Runs the test suite for an apputil/- Generic utilities used by the module buildervalidator/- Validates an app using its KIDL spec, spec.json, etc
src/java/name/fraser/neil/plaintext/diff_match_patch.java- A utility computing the difference between two texts to create a patch. This is used insrc/java/us/kbase/mobu/compiler/test/html/HTMLGenTest.java.src/sh/sdk-completion.sh- A parameter-completion bash script for thekb-sdkCLI.