Skip to content

Commit 39b1227

Browse files
2 parents a3840ef + be2cd96 commit 39b1227

File tree

8 files changed

+201
-26
lines changed

8 files changed

+201
-26
lines changed

.github/workflows/cicd_pipeline.yml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ name: "CI/CD Pipeline"
33
on:
44
push:
55
branches:
6-
- develop
76
- 'ls-release/**'
87
pull_request:
98
types:
@@ -155,10 +154,7 @@ jobs:
155154
name: "Build"
156155
needs:
157156
- changed_files
158-
if: |
159-
github.event_name == 'push' &&
160-
( ( github.ref_name == 'develop' && needs.changed_files.outputs.docker == 'true' )
161-
|| startsWith(github.ref_name, 'ls-release/') )
157+
if: startsWith(github.ref_name, 'ls-release/')
162158
permissions:
163159
contents: read
164160
checks: write
@@ -170,15 +166,15 @@ jobs:
170166

171167
deploy:
172168
name: "Deploy"
173-
if: startsWith(github.ref_name, 'ls-release/') || github.ref_name == 'develop'
169+
if: startsWith(github.ref_name, 'ls-release/')
174170
runs-on: ubuntu-latest
175171
needs:
176172
- build-docker
177173
steps:
178174
- uses: actions/github-script@v7
179175
env:
180176
DOCKER_IMAGE_VERSION: ${{ needs.build-docker.outputs.build_version }}
181-
RELEASE_NAME: ${{ startsWith(github.ref_name, 'ls-release/') && 'ls-release' || 'ls-develop' }}
177+
RELEASE_NAME: 'ls-release'
182178
with:
183179
github-token: ${{ secrets.GIT_PAT }}
184180
script: |
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
name: "CI/CD Pipeline Develop"
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
8+
concurrency:
9+
group: "CI/CD Pipeline-develop"
10+
cancel-in-progress: false
11+
12+
jobs:
13+
gitleaks:
14+
name: "Linter"
15+
uses: ./.github/workflows/gitleaks.yml
16+
with:
17+
head_sha: ${{ github.sha }}
18+
base_sha: ${{ github.event.pull_request.base.sha || github.event.before }}
19+
20+
bandit:
21+
name: "Linter"
22+
uses: ./.github/workflows/bandit.yml
23+
with:
24+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
25+
26+
ruff:
27+
name: "Linter"
28+
uses: ./.github/workflows/ruff.yml
29+
with:
30+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
31+
32+
blue:
33+
name: "Linter"
34+
uses: ./.github/workflows/blue.yml
35+
with:
36+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
37+
38+
biome:
39+
name: "Linter"
40+
uses: ./.github/workflows/biome.yml
41+
with:
42+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
43+
44+
stylelint:
45+
name: "Linter"
46+
uses: ./.github/workflows/stylelint.yml
47+
with:
48+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
49+
50+
build-docker:
51+
name: "Build"
52+
permissions:
53+
contents: read
54+
checks: write
55+
uses: ./.github/workflows/docker-build.yml
56+
with:
57+
sha: ${{ github.event.pull_request.head.sha || github.event.after }}
58+
branch_name: ${{ github.event.pull_request.head.ref || github.ref_name }}
59+
secrets: inherit
60+
61+
deploy:
62+
name: "Deploy"
63+
runs-on: ubuntu-latest
64+
needs:
65+
- build-docker
66+
steps:
67+
- uses: actions/github-script@v7
68+
env:
69+
DOCKER_IMAGE_VERSION: ${{ needs.build-docker.outputs.build_version }}
70+
RELEASE_NAME: 'ls-develop'
71+
with:
72+
github-token: ${{ secrets.GIT_PAT }}
73+
script: |
74+
const docker_image_version = process.env.DOCKER_IMAGE_VERSION;
75+
const release_name = process.env.RELEASE_NAME;
76+
github.rest.actions.createWorkflowDispatch({
77+
owner: "HumanSignal",
78+
repo: "label-studio-enterprise",
79+
workflow_id: "argocd-deploy.yml",
80+
ref: "develop",
81+
inputs: {
82+
docker_image_version: docker_image_version,
83+
release_name: release_name,
84+
template_name: "lso",
85+
}
86+
});
87+
88+
pytest:
89+
name: "Tests"
90+
uses: ./.github/workflows/tests.yml
91+
with:
92+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
93+
secrets: inherit
94+
95+
migrations:
96+
name: "Tests"
97+
uses: ./.github/workflows/test_migrations.yml
98+
with:
99+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
100+
secrets: inherit
101+
102+
conda-test:
103+
name: "Tests"
104+
uses: ./.github/workflows/test_conda.yml
105+
with:
106+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
107+
secrets: inherit
108+
109+
tests-yarn-unit:
110+
name: "Tests"
111+
uses: ./.github/workflows/tests-yarn-unit.yml
112+
with:
113+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
114+
secrets: inherit
115+
116+
tests-yarn-integration:
117+
name: "Tests"
118+
uses: ./.github/workflows/tests-yarn-integration.yml
119+
with:
120+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
121+
secrets: inherit
122+
123+
tests-yarn-e2e:
124+
name: "Tests"
125+
uses: ./.github/workflows/tests-yarn-e2e.yml
126+
with:
127+
head_sha: ${{ github.event.pull_request.head.sha || github.event.after }}
128+
secrets: inherit
129+
130+
check_gate:
131+
name: "Ready to ship"
132+
if: always()
133+
needs:
134+
- gitleaks
135+
- bandit
136+
- ruff
137+
- blue
138+
- biome
139+
- stylelint
140+
- pytest
141+
- migrations
142+
- build-docker
143+
- tests-yarn-unit
144+
- tests-yarn-integration
145+
- tests-yarn-e2e
146+
runs-on: ubuntu-latest
147+
steps:
148+
- name: Decide whether the needed jobs succeeded or failed
149+
uses: re-actors/alls-green@release/v1
150+
with:
151+
allowed-skips: gitleaks, bandit, ruff, blue, biome, stylelint, pytest, migrations, conda-test, build-docker, tests-yarn-unit, tests-yarn-integration, tests-yarn-e2e
152+
jobs: ${{ toJSON(needs) }}

.github/workflows/yarn-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757

5858
- name: "Commit and Push"
5959
env:
60-
COMMIT_MESSAGE: "docs: Update tag docs and autocomplete dictionary""
60+
COMMIT_MESSAGE: "docs: Update tag docs and autocomplete dictionary"
6161
WORKFLOW_LINK: "Workflow run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
6262
run: |
6363
git add "${{ env.FRONTEND_MONOREPO_DIR }}" || true

docs/source/guide/saas.md

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ type: guide
55
tier: enterprise
66
order: 0
77
order_enterprise: 96
8-
meta_title: app.humansignal.com Settings
9-
meta_description: This page contains information about the settings that are used on app.humansignal.com, available to HumanSignal SaaS customers.
8+
meta_title: app.humansignal.com and app.humansignal.eu Settings
9+
meta_description: This page contains information about the settings that are used on app.humansignal.com and app.humansignal.eu, available to HumanSignal SaaS customers.
1010
section: "Install & Setup"
1111
---
1212

@@ -18,36 +18,58 @@ app.humansignal.com (app.heartex.com) sends emails from the `humansignal.com` do
1818

1919
- `208.117.59.219`
2020

21-
## IP range
21+
app.humansignal.eu sends emails from the `humansignal.eu` domain by using [SendGrid](https://sendgrid.com/), and has its own dedicated IP address in EU region:
2222

23-
app.humansignal.com (app.heartex.com) utilizes the following IP addresses to handle the traffic:
23+
- `159.183.231.189`
2424

25+
## IP Ranges
26+
27+
### app.humansignal.com (app.heartex.com)
28+
29+
#### Inbound Traffic IP Addresses
2530
- `34.199.69.93`
2631
- `52.22.82.31`
2732
- `3.233.209.176`
2833

29-
In addition, all outbound connections from our SaaS platform are issued from the following IP addresses (Import/Export, ML backends, Prompts):
34+
#### Outbound Connections IP Addresses
35+
*Used for Import/Export, ML backends, and Prompts*
3036

3137
- `3.219.3.197`
3238
- `34.237.73.3`
3339
- `44.216.17.242`
3440

41+
### app.humansignal.eu
42+
43+
#### Inbound Traffic IP Addresses
44+
- `3.79.91.185`
45+
- `63.176.196.34`
46+
- `18.153.87.16`
47+
48+
#### Outbound Connections IP Addresses
49+
*Used for Import/Export, ML backends, and Prompts*
50+
51+
- `52.59.18.15`
52+
- `18.194.85.62`
53+
- `54.93.122.250`
54+
3555
## Hostname list
3656

3757
For setting up allow-lists in local HTTP(S) proxies, or other web-blocking software on user-end computers, add the following hostnames:
3858

3959
- `app.humansignal.com`
60+
- `app.humansignal.eu`
4061

4162
Please note that our documentation and company pages, served via https://app.humansignal.com/docs/api and https://humansignal.com/ respectively, load certain page content directly from commonly used public CDN hostnames.
4263

4364
## Usage Limits
4465

4566
Label Studio imposes rate limits on a per-Access Token basis. If a request exceeds the rate limit, a response with a 429 status code is returned. Clients are advised to pause and retry after a short delay in such instances.
4667

47-
| Path | Rate limit |
48-
|--------------------------|--------------------------------------------------------|
49-
| `/api/projects/*/import` | `1 request / 1 second` |
50-
| `/api` | `10 requests / 1 second`<br/>`500 requests / 1 minute` |
68+
| Path | Rate limit |
69+
|---------------------------|--------------------------------------------------------|
70+
| `/api/projects/*/import` | `1 request / 1 second` |
71+
| `/api/tasks/*/annotations`| `5 request / 1 second` |
72+
| `/api` | `10 requests / 1 second`<br/>`500 requests / 1 minute` |
5173

5274
## Other Operational Limits
5375

label_studio/feature_flags.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2744,7 +2744,7 @@
27442744
},
27452745
"fflag_feat_front_optic_1856_ask_ai_support_ticket_creation_short": {
27462746
"key": "fflag_feat_front_optic_1856_ask_ai_support_ticket_creation_short",
2747-
"on": false,
2747+
"on": true,
27482748
"prerequisites": [],
27492749
"targets": [],
27502750
"contextTargets": [],
@@ -2766,7 +2766,7 @@
27662766
"trackEvents": false,
27672767
"trackEventsFallthrough": false,
27682768
"debugEventsUntilDate": null,
2769-
"version": 2,
2769+
"version": 3,
27702770
"deleted": false
27712771
},
27722772
"fflag_feat_front_optic_66_lazy_chart_evaluation_19092023_short": {

poetry.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ dependencies = [
7474
"djangorestframework-simplejwt[crypto] (>=5.4.0,<6.0.0)",
7575
"tldextract (>=5.1.3)",
7676
## HumanSignal repo dependencies :start
77-
"label-studio-sdk @ https://github.com/HumanSignal/label-studio-sdk/archive/bbf2aeafbb4fb534ddc1a1248691d3008b2c6f53.zip",
77+
"label-studio-sdk @ https://github.com/HumanSignal/label-studio-sdk/archive/6c7a40d61b74923e2672a7144c4005f45f4d9b3a.zip",
7878
## HumanSignal repo dependencies :end
7979
]
8080

web/libs/datamanager/src/sdk/comments-sdk.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,13 @@ export class CommentsSdk {
7171
return { ...comment, created_by: comment.created_by.id };
7272
});
7373

74-
if (commentUsers.length) {
75-
this.lsf.store.enrichUsers(commentUsers);
74+
if (commentUsers.length && this.lsf?.store?.enrichUsers) {
75+
try {
76+
this.lsf.store.enrichUsers(commentUsers);
77+
} catch (error) {
78+
console.warn("Failed to enrich comment users:", error.message);
79+
return [];
80+
}
7681
}
7782

7883
return comments;

0 commit comments

Comments
 (0)