Files
speckle-server/packages/fileimport-service
Kristaps Fabians Geikins a6287fc06d feat(fe2 & server): saved views foundation (list & view) + bits n bobs (#5163)
* init db migration

* WIP store view

* create service call

* WIP insertion

* insert sort of works

* moving code arounmd

* creation tests

* avoid duplicate entries

* fixes from main

* basic group retrieval works

* group filtering works

* WIP view listing

* filter by acl

* fixes + WIP single group retrieval

* wip pivot

* more pivot query fixes

* tests fixed after pivot

* views list tests

* fixing test command

* business plan only checks

* more tests for coverage

* .dts import fix

* cli fix

* anutha one

* auth policy tests for business plan access

* WIP saved views panel base

* BE listing adjustments

* WIP group rendering

* group render done

* WIP post create cache updates

* listing fine?

* my vs theirs

* auto open

* minor fixes

* click load omg

* nicely loading views

* type fix

* less spammy loading

* another type fix:

* more lint fix

* test fix

* codecov disable

* moar coverage

* fix sidebar flashin

* more test coverage

* more test cvoverage

* minor adfjustments

* adj

* saved view wipe fixes

* CSR viewer

* more improvements

* extra feature flag checks

* lint fix

* feature flags fix

* more test fixes
2025-08-05 11:52:50 +03:00
..
2025-07-15 16:57:33 +01:00
2025-07-15 11:46:51 +01:00

File Import Service

Description of how this works

A micro-service which polls a Postgres database table file_uploads for new records and processes them.

It retrieves a referenced file from an S3 bucket and stores it in a local directory for parsing.

The File Import service can parse either STL, OBJ, or IFC files using external packages, written in either .Net or Python (note, there is a legacy IFC parser written in Node.js). These external packages are controlled via shell commands.

The parsers are responsible for extracting the necessary data from the files and storing it in the database. They are also responsible for creating a new Speckle model if necessary.

The service is then responsible for updating the status of the file_uploads table, and for posting a Postgres notification.

Dev setup

Building/Running the .NET importer

Requirements:

  • Ubuntu 24+

Do this on Ubuntu/OSX to install dotnet:

# Add microsoft package repo
sudo apt update && sudo apt install -y wget apt-transport-https
wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

# Install dotnet sdk 8
sudo apt update
sudo apt install -y dotnet-sdk-8.0

# Verify version
dotnet --version

Do this to build:

cd ./packages/fileimport-service/src/ifc-dotnet

dotnet publish ifc-converter.csproj -c Release -o output/