Overview
Transforming data into value.
OctoMesh revolutionizes the way companies exchange data between software applications by providing both connectivity and intelligent data mapping and transformation capabilities. OctoMesh solves the challenges of data incompatibility, connectivity and mapping, enabling seamless and efficient data exchange. OctoMesh accompanies organizations on their digital transformation journey with optimized connections and couplings, strong security measures and an intuitive user interface. Companies are thus discovering the full potential of their data and promoting innovation, efficiency and well-founded decisions in today's data-driven world.
For the development environment, mainly .NET SDK and NodeJs needs to be installed. Please check the details here.
Developer PowerShell
OctoMesh PowerShell enables to simplify the process of cloning, building and starting OctoMesh including infrastructure.
To get started, clone repository https://github.com/meshmakers/octo-tools to a directory like ~/Development/meshmakers/octo-tools.
mkdir ~/Development/meshmakers/
cd ~/Development/meshmakers/
git clone git@github.com:meshmakers/octo-tools.git
If you encounter issues due to the Windows 260-character Path Length limitation, it is advisable to relocate the directory closer to your home directory e.g. C:\meshmakers
.
Otherwise, a potential emergency solution is to enable Long Paths via Registry edit in PowerShell
or a Registry File
. However, please exercise caution as this solution entails potential risks! For further information, please refer to the link below.
- PowerShell
- Registry (.reg) file
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001
For more information check here.
Add to your Powershell Profile the OctoMesh profile by extending the profile. In this case we use Visual Studio Code so we expect that code is available in your PATH environment variable.
code $PROFILE
Add to the profile:
. "~/Development/meshmakers/octo-tools/modules/profile.ps1"
Restart powershell, during start you should see a message like
Loading Octo Profile
After loading OctoMesh developer Profile, there are some powershell variables existing
- $ROOTPATH: The base directory of OctoMesh. e. g. ~/Development/meshmakers/. This directory is called root directory
- $TOOLSPATH: The directory of the tools repository. e. g. ~/Development/meshmakers/octo-tools
- $INFRASTRUCTUREPATH: The directory of infrastructure within the tools repository. e. g. ~/Development/meshmakers/octo-tools/infrastructure
- $NUGETPATH: The directory of stored nuget packages of OctoMesh. e. g. ~/Development/meshmakers/nuget
- $GLOBALNUGETPACKAGESPATH: The global nuget package path of .NET. e. g. {use profile path}/.nuget/packages/
Customizing settings of projects
Using a file named Octo.User.props
in the root directory ($ROOTPATH
) of OctoMesh, you can customize the settings of the projects. The file is loaded by MsBuild and is structured as follows:
<Project>
<PropertyGroup>
<!-- Settings -->
</PropertyGroup>
</Project>
By default, the latest available Nuget packages are used. By using the Octo.User.props
file, you can specify the version of the Nuget packages to be used.
<Project>
<PropertyGroup>
<OctoVersion>1.2.3</OctoVersion>
</PropertyGroup>
</Project>
Using IDE's
In IDE's like Visual Studio or JetBrains Rider it is needed some configuration. Details can be found here.
Clone repositories
All git repositories are hosted on GitHub, all packages are hosted on nuget or npmjs.
We decided to use SSH keys to connect to github, therefore are some good-to-know issues documented at Configure Git.
To clone the main repos, you need to run the command Invoke-CloneMainRepos
within the PowerShell with OctoMesh profile.
Build and start services
Once the requirements have been met, there are following scripts that can be used to build the project and start the services.
After build, the infrastructure services needs to be started. To handle the steps to install, start, stop or uninstall you find here
Invoke-BuildAll
Install-OctoInfrastructure # First time
Start-OctoInfrastructure # Second time+
Start-Octo
After that, the following services should be available:
- Asset Repo Service (https://localhost:5001)
- Identity Service (https://localhost:5003)
- Admin Panel (https://localhost:5005)
- Bot Service (https://localhost:5009)
- Time Repo Service (https://localhost:5013)
- Communication Controller Service (https://localhost:5015)
Create the first user account
Go to the Identity service to create the first admin user.
After that, new tenants can be created in the Admin Panel.
Troubleshooting
Here are some common issues and their solutions are listed.
Issues with .NET dev certificates
under Linux
To confirm a certificates issue, run the following command in PowerShell:
http get https://localhost:5003/.well-known/openid-configuration
It is confirmed if the console output contains the following error: CERTIFICATE_VERIFY_FAILED
.
Solution:
Details on how to solve this issue can be found
under System Requirements.