Skip to content

YepCode Core Concepts Rules

Essential guide to YepCode platform architecture and core concepts. Covers processes, modules, execution context, team variables, datastore, workspace structure, and development best practices for building enterprise-grade integrations and automations.

Download this file

YepCode is an enterprise-ready integration and automation platform that offers comprehensive features for API integrations, workflow automation, and data processing. It excels in providing enterprise-grade sandboxing and security measures specifically designed for running code generated by LLMs.

This offers developers a familiar coding environment, while handling all the infrastructure concerns, security measures, and dependency management automatically.

  • Basic unit of execution in YepCode
  • Contains business logic written in JavaScript (NodeJS v22) or Python (v3.13)
  • Each process may have input parameters, that are defined using a JSON Schema file (parametersSchema.json) and can be accessed during execution using the yepcode.context.parameters object
  • If you use the YepCode CLI, the copy of your YepCode workspace in your local environment will have the following folder structure:
📦 <workspace-name>
┣ 📂 dependencies
┃ ┣ 📜 package.json
┃ ┣ 📜 requirements.txt
┣ 📂 modules
┃ ┣ 📂 <javascript-module-slug>
┃ ┃ ┗ 📜 <module-slug>.js
┃ ┣ 📂 <python-module-slug>
┃ ┃ ┗ 📜 <module-slug>.py
┃ ┣ 📂 <module-with-versions>
┃ ┃ ┣ 📂 versions
┃ ┃ ┃ ┣ 📂 v1.0
┃ ┃ ┃ ┃ ┗ 📜 <module-slug>.js
┃ ┃ ┃ ┗ 📂 ...
┃ ┃ ┗ 📜 <module-slug>.js
┃ ┗ 📂 ...
┣ 📂 processes
┃ ┣ 📂 <javascript-process-slug>
┃ ┃ ┣ 📜 README.md
┃ ┃ ┣ 📜 index.js
┃ ┃ ┣ 📜 parametersSchema.json
┃ ┃ ┗ 📜 parameters.json
┃ ┣ 📂 <python-process-slug>
┃ ┃ ┣ 📜 README.md
┃ ┃ ┣ 📜 main.py
┃ ┃ ┣ 📜 parametersSchema.json
┃ ┃ ┗ 📜 parameters.json
┃ ┣ 📂 <process-slug-with-versions>
┃ ┃ ┣ 📂 versions
┃ ┃ ┃ ┣ 📂 v1.0
┃ ┃ ┃ ┃ ┣ 📜 README.md
┃ ┃ ┃ ┃ ┣ 📜 index.js
┃ ┃ ┃ ┃ ┣ 📜 parametersSchema.json
┃ ┃ ┃ ┃ ┗ 📜 parameters.json
┃ ┃ ┃ ┗ 📂 ...
┃ ┃ ┣ 📜 README.md
┃ ┃ ┣ 📜 index.js
┃ ┃ ┣ 📜 parametersSchema.json
┃ ┃ ┗ 📜 parameters.json
┃ ┗ 📂 ...
┣ 📜 datastore.json
┣ 📜 variables.env
┣ 📜 variables.local.env
┣ 📜 .gitignore
┗ 📂 .yepcode
- `dependencies`: Dependencies' source code, containing both the python and javascript dependencies.
- `package.json`: It will be a json file with the dependencies for the javascript dependencies. Just the content of the dependencies field in any standard package.json file.
- `requirements.txt`: Python requirements.txt file with the dependencies for the python dependencies.
- `processes`: Processes' source code, with one folder per process, containing process files.
- `README.md`: Markdown file with the process description.
- `index.js` or `index.py`: Process source code in JavaScript or Python.
- `parametersSchema.json`: Parameters schema JSON file.
- `parameters.json`: Sample input file dynamically generated. It will be used as default input file in local executions, but you may provide another one.
- `versions`: if process has published versions, a new folder will exists and each version folder will have a process replica with the published contents.
- `modules`: Modules' source code, with one folder per module, containing the module file.
- `versions`: if module has published versions, a new folder will exists and each version folder will have a module replica with the published contents.
- `variables.env`: Includes all team variables in .env file format (KEY=VALUE).
- `variables.local.env`: Local environment variables that override `variables.env`.
- `datastore.json`: YepCode datastore file.
- `.gitignore`: Auto generated gitignore file. It will be used if you create a git repo for this directory to ignore sensitive resources (variables .env).
- `.yepcode`: YepCode workspace metadata directory.
  • Reusable code libraries shared across processes
  • Help maintain DRY (Don’t Repeat Yourself) principle
  • Support versioning for better code management
  • Each process runs in an isolated environment
  • Has access to:
    • Input parameters
    • Environment variables
    • Execution metadata
    • Process information
    • Team settings
    • Request data (for webhooks)
  • Key-value pairs available across processes
  • Can store sensitive information securely
  • Accessible via environment variables or yepcode.env
  • Key-value storage system for data persistence
  • Share data between process executions
  • Available in paid plans with specific limits
  • Useful for maintaining state and caching
  • Can only store strings or numbers. If you need to store other types of data, you should convert them to strings before storing them.
  • Follow the language-specific code style guidelines
  • Handle errors appropriately and provide meaningful error messages (errors may be thrown for failed executions)
  • Use logging for debugging and tracking execution state
  • Validate input parameters when needed
  • Use environment variables for sensitive data
  • Do not use hardcoded values and suggest to change it to input parameters or to env vars
  • Use appropriate status codes for responses