Skip to content

Commit

Permalink
Merge branch 'main' into iain/fix-service-account-secrets
Browse files Browse the repository at this point in the history
  • Loading branch information
iainsproat committed Nov 15, 2024
2 parents 45755e3 + f961a6d commit eb124da
Show file tree
Hide file tree
Showing 661 changed files with 34,319 additions and 12,054 deletions.
97 changes: 94 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,23 @@ workflows:
- main
- hotfix*

- test-server:
- test-server: &test-server-job-definition
context:
- speckle-server-licensing
- stripe-integration
filters: &filters-allow-all
tags:
# run tests for any commit on any branch, including any tags
only: /.*/
requires:
- docker-publish-postgres-container

- test-server-no-ff:
filters: *filters-allow-all
requires:
- docker-publish-postgres-container

- test-server-multiregion: *test-server-job-definition

- test-frontend-2:
filters: *filters-allow-all
Expand Down Expand Up @@ -145,6 +152,12 @@ workflows:
requires:
- get-version

- docker-build-postgres-container:
context: *build-context
filters: *filters-build
requires:
- get-version

- docker-build-monitor-container:
context: *build-context
filters: *filters-build
Expand Down Expand Up @@ -179,6 +192,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-frontend:
Expand All @@ -194,6 +208,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-frontend-2:
Expand All @@ -209,6 +224,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-webhooks:
Expand All @@ -224,6 +240,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-file-imports:
Expand All @@ -239,6 +256,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-previews:
Expand All @@ -254,6 +272,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-test-container:
Expand All @@ -269,8 +288,15 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-postgres-container:
context: *docker-hub-context
filters: *filters-publish
requires:
- docker-build-postgres-container

- docker-publish-monitor-container:
context: *docker-hub-context
filters: *filters-publish
Expand All @@ -284,6 +310,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- docker-publish-docker-compose-ingress:
Expand All @@ -299,6 +326,7 @@ workflows:
- test-objectsender
- test-server
- test-server-no-ff
- test-server-multiregion
- test-preview-service

- publish-helm-chart:
Expand Down Expand Up @@ -339,6 +367,7 @@ workflows:
- get-version
- test-server
- test-server-no-ff
- test-server-multiregion
- test-ui-components
- test-frontend-2
- test-viewer
Expand Down Expand Up @@ -438,11 +467,12 @@ jobs:
docker:
- image: cimg/node:18.19.0
- image: cimg/redis:7.2.4
- image: cimg/postgres:14.11
- image: 'speckle/speckle-postgres'
environment:
POSTGRES_DB: speckle2_test
POSTGRES_PASSWORD: speckle
POSTGRES_USER: speckle
command: -c 'max_connections=1000'
- image: 'minio/minio'
command: server /data --console-address ":9001"
# environment:
Expand All @@ -452,6 +482,7 @@ jobs:
NODE_ENV: test
DATABASE_URL: 'postgres://speckle:[email protected]:5432/speckle2_test'
PGDATABASE: speckle2_test
POSTGRES_MAX_CONNECTIONS_SERVER: 20
PGUSER: speckle
SESSION_SECRET: 'keyboard cat'
STRATEGY_LOCAL: 'true'
Expand All @@ -464,6 +495,7 @@ jobs:
REDIS_URL: 'redis://127.0.0.1:6379'
S3_REGION: '' # optional, defaults to 'us-east-1'
AUTOMATE_ENCRYPTION_KEYS_PATH: 'test/assets/automate/encryptionKeys.json'
FF_BILLING_INTEGRATION_ENABLED: 'true'
steps:
- checkout
- restore_cache:
Expand Down Expand Up @@ -550,6 +582,52 @@ jobs:
FF_WORKSPACES_SSO_ENABLED: 'false'
FF_MULTIPLE_EMAILS_MODULE_ENABLED: 'false'
FF_GENDOAI_MODULE_ENABLED: 'false'
FF_GATEKEEPER_MODULE_ENABLED: 'false'
FF_BILLING_INTEGRATION_ENABLED: 'false'

test-server-multiregion:
<<: *test-server-job
docker:
- image: cimg/node:18.19.0
- image: cimg/redis:7.2.4
- image: 'speckle/speckle-postgres'
environment:
POSTGRES_DB: speckle2_test
POSTGRES_PASSWORD: speckle
POSTGRES_USER: speckle
command: -c 'max_connections=1000' -c 'wal_level=logical'
- image: 'speckle/speckle-postgres'
environment:
POSTGRES_DB: speckle2_test
POSTGRES_PASSWORD: speckle
POSTGRES_USER: speckle
command: -c 'max_connections=1000' -c 'port=5433' -c 'wal_level=logical'
- image: 'minio/minio'
command: server /data --console-address ":9001"
environment:
# Same as test-server:
NODE_ENV: test
DATABASE_URL: 'postgres://speckle:[email protected]:5432/speckle2_test'
PGDATABASE: speckle2_test
POSTGRES_MAX_CONNECTIONS_SERVER: 20
PGUSER: speckle
SESSION_SECRET: 'keyboard cat'
STRATEGY_LOCAL: 'true'
CANONICAL_URL: 'http://127.0.0.1:3000'
S3_ENDPOINT: 'http://127.0.0.1:9000'
S3_ACCESS_KEY: 'minioadmin'
S3_SECRET_KEY: 'minioadmin'
S3_BUCKET: 'speckle-server'
S3_CREATE_BUCKET: 'true'
REDIS_URL: 'redis://127.0.0.1:6379'
S3_REGION: '' # optional, defaults to 'us-east-1'
AUTOMATE_ENCRYPTION_KEYS_PATH: 'test/assets/automate/encryptionKeys.json'
FF_BILLING_INTEGRATION_ENABLED: 'true'
# These are the only different env keys:
MULTI_REGION_CONFIG_PATH: '../../.circleci/multiregion.test-ci.json'
FF_WORKSPACES_MODULE_ENABLED: 'true'
FF_WORKSPACES_MULTI_REGION_ENABLED: 'true'
RUN_TESTS_IN_MULTIREGION_MODE: true

test-frontend-2:
docker: &docker-node-browsers-image
Expand Down Expand Up @@ -618,7 +696,7 @@ jobs:
test-preview-service:
docker:
- image: cimg/node:18.19.0
- image: cimg/postgres:14.11
- image: cimg/postgres:16.4@sha256:2e4f1a965bdd9ba77aa6a0a7b93968c07576ba2a8a7cf86d5eb7b31483db1378
environment:
POSTGRES_DB: preview_service_test
POSTGRES_PASSWORD: preview_service_test
Expand Down Expand Up @@ -965,6 +1043,12 @@ jobs:
FOLDER: utils
SPECKLE_SERVER_PACKAGE: test-deployment

docker-build-postgres-container:
<<: *build-job
environment:
FOLDER: utils
SPECKLE_SERVER_PACKAGE: postgres

docker-build-monitor-container:
<<: *build-job
environment:
Expand Down Expand Up @@ -1029,6 +1113,12 @@ jobs:
FOLDER: utils
SPECKLE_SERVER_PACKAGE: test-deployment

docker-publish-postgres-container:
<<: *publish-job
environment:
FOLDER: utils
SPECKLE_SERVER_PACKAGE: postgres

docker-publish-monitor-container:
<<: *publish-job
environment:
Expand Down Expand Up @@ -1117,6 +1207,7 @@ jobs:
publish-viewer-sandbox-cloudflare-pages:
docker: *docker-node-image
working_directory: *work-dir
resource_class: large
steps:
- checkout
- restore_cache:
Expand Down
3 changes: 2 additions & 1 deletion .circleci/deployment/Tiltfile.helm
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,12 @@ k8s_yaml('./manifests/priorityclass.yaml')
k8s_yaml('./manifests/speckle-server.secret.yaml')

# Install charts
# Postgres 16.4 is packaged in chart 15.5.38
helm_resource('postgresql',
release_name='postgresql',
namespace='postgres',
chart='oci://registry-1.docker.io/bitnamicharts/postgresql',
flags=['--version=^12.0.0',
flags=['--version=^15.5.38',
'--values=./values/postgres.values.yaml',
'--kube-context=kind-speckle-server'],
deps=['./values/postgres.values.yaml'],
Expand Down
14 changes: 14 additions & 0 deletions .circleci/multiregion.test-ci.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"main": {
"postgres": {
"connectionUri": "postgresql://speckle:[email protected]:5432/speckle2_test"
}
},
"regions": {
"region1": {
"postgres": {
"connectionUri": "postgresql://speckle:[email protected]:5433/speckle2_test"
}
}
}
}
2 changes: 1 addition & 1 deletion .github/workflows/preview-service-acceptance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
services:
postgres:
# Docker Hub image
image: postgres:14
image: postgres:16.4-bookworm@sha256:91f464e7ba0ad91a106c94cff079fb4384139291b8c0502fd36989cf2c788bbb
env:
POSTGRES_DB: preview_service_test
POSTGRES_PASSWORD: preview_service_test
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,8 @@ minio-data/
postgres-data/
redis-data/

.tshy-build
.tshy-build

# Server
multiregion.json
multiregion.test.json
43 changes: 8 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
<img src="https://user-images.githubusercontent.com/2679513/131189167-18ea5fe1-c578-47f6-9785-3748178e4312.png" width="150px"/><br/>
Speckle | Server
</h1>

<p align="center"><a href="https://twitter.com/SpeckleSystems"><img src="https://img.shields.io/twitter/follow/SpeckleSystems?style=social" alt="Twitter Follow"></a> <a href="https://speckle.community"><img src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fspeckle.community&amp;style=flat-square&amp;logo=discourse&amp;logoColor=white" alt="Community forum users"></a> <a href="https://speckle.systems"><img src="https://img.shields.io/badge/https://-speckle.systems-royalblue?style=flat-square" alt="website"></a> <a href="https://speckle.guide/dev/"><img src="https://img.shields.io/badge/docs-speckle.guide-orange?style=flat-square&amp;logo=read-the-docs&amp;logoColor=white" alt="docs"></a></p>

> Speckle is the first AEC data hub that connects with your favorite AEC tools. Speckle exists to overcome the challenges of working in a fragmented industry where communication, creative workflows, and the exchange of data are often hindered by siloed software and processes. It is here to make the industry better.
<h3 align="center">
Server and Web packages
</h3>
<p align="center"><b>Speckle</b> is data infrastructure for the AEC industry.</p><br/>

<p align="center"><a href="https://twitter.com/SpeckleSystems"><img src="https://img.shields.io/twitter/follow/SpeckleSystems?style=social" alt="Twitter Follow"></a> <a href="https://speckle.community"><img src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fspeckle.community&amp;style=flat-square&amp;logo=discourse&amp;logoColor=white" alt="Community forum users"></a> <a href="https://speckle.systems"><img src="https://img.shields.io/badge/https://-speckle.systems-royalblue?style=flat-square" alt="website"></a> <a href="https://speckle.guide/dev/"><img src="https://img.shields.io/badge/docs-speckle.guide-orange?style=flat-square&amp;logo=read-the-docs&amp;logoColor=white" alt="docs"></a></p>

<p align="center">
<a href="https://codecov.io/gh/specklesystems/speckle-server">
Expand All @@ -18,37 +20,6 @@
</a>
</p>

# About Speckle

What is Speckle? Check our [![YouTube Video Views](https://img.shields.io/youtube/views/B9humiSpHzM?label=Speckle%20in%201%20minute%20video&style=social)](https://www.youtube.com/watch?v=B9humiSpHzM)

## Features

- **Object-based:** say goodbye to files! Speckle is the first object based platform for the AEC industry
- **Version control:** Speckle is the Git & Hub for geometry and BIM data
- **Collaboration:** share your designs collaborate with others
- **3D Viewer:** see your CAD and BIM models online, share and embed them anywhere
- **Connectivity:** get your CAD and BIM models into other software without exporting or importing
- **Real time:** get real time updates and notifications and changes
- **GraphQL API:** get what you need anywhere you want it
- **Webhooks:** the base for a automation and next-gen pipelines
- **Built for developers:** we are building Speckle with developers in mind and have tools for every stack
- **Built for the AEC industry:** Speckle connectors are plugins for the most common software used in the industry such as Revit, Rhino, Grasshopper, AutoCAD, Civil 3D, Excel, Unreal Engine, Unity, QGIS, Blender, ArchiCAD and more!

## Try Speckle now!

Give Speckle a try in no time by:

- [![app.speckle.systems](https://img.shields.io/badge/https://-app.speckle.systems-0069ff?style=flat-square&logo=hackthebox&logoColor=white)](https://app.speckle.systems) ⇒ Create an account at app.speckle.systems
- [![Deploy on your own infrastructure with docker compose](https://img.shields.io/badge/https://-speckle.guide-0069ff?style=flat-square&logo=hackthebox&logoColor=white)](<[https://](https://speckle.guide/dev/server-manualsetup.html)>) ⇒ Deploy on your own infrastructure with Docker Compose
- [![Deploy on your own infrastructure with docker compose](https://img.shields.io/badge/https://-speckle.guide-0069ff?style=flat-square&logo=hackthebox&logoColor=white)](<[https://](https://speckle.guide/dev/server-setup-k8s.html)>) ⇒ Deploy on your own infrastructure with Kubernetes

## Resources

- [![Community forum users](https://img.shields.io/badge/community-forum-green?style=for-the-badge&logo=discourse&logoColor=white)](https://speckle.community) for help, feature requests or just to hang with other speckle enthusiasts, check out our community forum!
- [![website](https://img.shields.io/badge/tutorials-speckle.systems-royalblue?style=for-the-badge&logo=youtube)](https://speckle.systems) our tutorials portal is full of resources to get you started using Speckle
- [![docs](https://img.shields.io/badge/docs-speckle.guide-orange?style=for-the-badge&logo=read-the-docs&logoColor=white)](https://speckle.guide/dev/) reference on almost any end-user and developer functionality

# Repo structure

This monorepo is the home of the Speckle v2 web packages:
Expand All @@ -65,8 +36,10 @@ This monorepo is the home of the Speckle v2 web packages:

Make sure to also check and ⭐️ these other Speckle repositories:

- [`speckle-sharp`](https://github.com/specklesystems/speckle-sharp): .NET tooling, connectors and interoperability
- [`speckle-sharp-connectors`](https://github.com/specklesystems/speckle-sharp-connectors): .NET connectors and desktop UI
- [`speckle-sharp-sdk`](https://github.com/specklesystems/speckle-sharp-sdk): .NET SDK, tests, and Objects
- [`specklepy`](https://github.com/specklesystems/specklepy): Python SDK 🐍
- [`speckle-sketchup`](https://github.com/specklesystems/speckle-sketchup): Sketchup connector
- [`speckle-excel`](https://github.com/specklesystems/speckle-excel): Excel connector
- [`speckle-unity`](https://github.com/specklesystems/speckle-unity): Unity 3D connector
- [`speckle-blender`](https://github.com/specklesystems/speckle-blender): Blender connector
Expand Down
Loading

0 comments on commit eb124da

Please sign in to comment.