Skip to content

Basic API docs (IVS-319) #202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 442 commits into from
Jul 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
442 commits
Select commit Hold shift + click to select a range
712ae37
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Feb 27, 2025
2c846c3
IVS-425 - Unified Authoring tool Evaluation
Ghesselink Feb 27, 2025
ae2cab4
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 1, 2025
6b04cac
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 1, 2025
f514b77
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 1, 2025
2d57da1
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 1, 2025
d4b99a8
Merge pull request #157 from buildingSMART/IVS-412-link-authoring-too…
rw-bsi Mar 1, 2025
a71855b
Merge pull request #158 from buildingSMART/IVS-425-unified-authoring-…
rw-bsi Mar 1, 2025
dd1b3db
minor Django Admin screen improvements
rw-bsi Mar 1, 2025
439a3ab
include environment in admin emails
rw-bsi Mar 1, 2025
746a3cb
rearrange columns and colum names
rw-bsi Mar 2, 2025
2bcf6b0
Merge pull request #160 from buildingSMART/IVS-395_Include_Environmen…
rw-bsi Mar 2, 2025
1c6a58a
Merge branch 'development' into IVS-427_Django_Admin_Improvements
rw-bsi Mar 2, 2025
d4d181f
Merge pull request #159 from buildingSMART/IVS-427_Django_Admin_Impro…
rw-bsi Mar 2, 2025
21559e8
IVS-370 - Log Rule Runtime
Ghesselink Mar 2, 2025
9900bd8
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 3, 2025
0c1ba25
disable initial emails for end users
rw-bsi Mar 3, 2025
0ade4ad
IVS-429 - Fetch correct description (url)
Ghesselink Mar 3, 2025
77b3e80
Merge pull request #162 from buildingSMART/IVS-37_Reduce_Email_Volume…
rw-bsi Mar 3, 2025
a7d346a
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 4, 2025
84376dc
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 4, 2025
da22355
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 4, 2025
79e16c1
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 7, 2025
68ba7c0
glob, rm version, refactor, break out loop
Ghesselink Mar 7, 2025
48692f8
Merge pull request #163 from buildingSMART/IVS-429-fetch-correct-desc…
civilx64 Mar 8, 2025
b99a18c
IVS-438 - ExchangeRequirement Keyword Parsing
Ghesselink Mar 8, 2025
3064b9b
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 8, 2025
bfad1fa
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 9, 2025
f9421cc
Django Admin updates for detection of Company based on email pattern(s)
rw-bsi Mar 10, 2025
b89a474
Merge pull request #166 from buildingSMART/IVS-417_Ability-to-manuall…
rw-bsi Mar 10, 2025
f8e06fb
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 10, 2025
8856fc9
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 10, 2025
3207972
move logs to volume, separate logfile per worker, renaming
Ghesselink Mar 10, 2025
3e955a0
set env
Ghesselink Mar 10, 2025
13d1bdf
rm log_folder from docker-compose
Ghesselink Mar 10, 2025
78279af
update docker-compose
Ghesselink Mar 10, 2025
aed4cca
rm gherkin_logs from frontend
Ghesselink Mar 10, 2025
b2c784c
Increase test coverage and refactor
rw-bsi Mar 10, 2025
86b5aea
add one testcase to CI/CD (for debugging purposes)
rw-bsi Mar 10, 2025
e12b191
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 10, 2025
3156517
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 10, 2025
cfc75d1
add additional testcases
rw-bsi Mar 11, 2025
45f6900
Merge pull request #167 from buildingSMART/IVS-384_Increase_and_Refac…
rw-bsi Mar 11, 2025
e60c0f1
Merge pull request #165 from buildingSMART/IVS-438-MVD-ExchangeRequir…
civilx64 Mar 11, 2025
b69651e
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 11, 2025
e3de5e5
fix for assignment failure when no eligible users match
rw-bsi Mar 11, 2025
c46522a
Merge pull request #168 from buildingSMART/IVS-440_Assign_Without_Any…
civilx64 Mar 12, 2025
07ef715
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 12, 2025
4a2c7ae
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 12, 2025
5df15b2
additional unit tests
rw-bsi Mar 13, 2025
e771bc8
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 13, 2025
37f1172
Merge pull request #169 from buildingSMART/fix/IVS-442_ParseInfo_Fail…
rw-bsi Mar 13, 2025
b17e9fe
IVS-460 - Sort users by Joined Date (Desc) in Django Admin
rw-bsi Mar 15, 2025
5cb5b4d
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 16, 2025
e81dffa
Capture and display self-declared affiliation
rw-bsi Mar 16, 2025
7ca3062
Send email for processing failures
rw-bsi Mar 16, 2025
cf669d9
updated email template
rw-bsi Mar 16, 2025
221826b
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 16, 2025
44f248f
Merge branch 'development' into IVS-457_Processing_failure_admin_email
Ghesselink Mar 16, 2025
a44f9a1
Merge pull request #171 from buildingSMART/IVS-457_Processing_failure…
Ghesselink Mar 16, 2025
df3642b
Remove blank space
Ghesselink Mar 16, 2025
652ee15
Handle invalid empty header fields
Ghesselink Mar 16, 2025
12ad8d2
Assign user to company and mark as is_vendor if email matches
rw-bsi Mar 16, 2025
fac69f5
cleanup whitespace
rw-bsi Mar 16, 2025
686eee7
Merge pull request #172 from buildingSMART/IVS-455-Handle-None-Descri…
rw-bsi Mar 16, 2025
72b75f0
IVS-443 - Mark parse_info task as failed
Ghesselink Mar 16, 2025
6636e23
Merge pull request #161 from buildingSMART/IVS-370-Log-rule-runtime
civilx64 Mar 17, 2025
0cfc28d
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 17, 2025
a739380
Merge pull request #173 from buildingSMART/IVS-413_Automatically_Assi…
civilx64 Mar 17, 2025
71a4d5a
Merge branch 'development' into IVS-433_Capture_Self_Declared_Being_A…
rw-bsi Mar 17, 2025
60c5165
Merge pull request #170 from buildingSMART/IVS-433_Capture_Self_Decla…
rw-bsi Mar 17, 2025
87fc3b3
IVS-370 - Fixes logging env
Ghesselink Mar 17, 2025
c5a9d0c
Merge pull request #175 from buildingSMART/IVS-370-Fixes-Logging-Env
civilx64 Mar 18, 2025
51b8f21
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 18, 2025
b11c2c2
IVS-433 - don't show self-declaration dialog just yet
rw-bsi Mar 18, 2025
2d05136
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 21, 2025
dbdacda
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 24, 2025
341705b
IVS-466 - Display is_vendor_self_declared in Django Admin
rw-bsi Mar 25, 2025
f7e2b12
long overdue; only workaround w/o full queryset evaluation - very han…
rw-bsi Mar 25, 2025
d208297
Stop container if Django Migrations fail + add Django Migrations to W…
rw-bsi Mar 26, 2025
02fb3bb
handle reporting of 2D position for LIP002
civilx64 Mar 26, 2025
ecd98dd
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 26, 2025
069d35d
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 26, 2025
f149669
Merge pull request #178 from buildingSMART/IVS-173-LIP002-fallback-co…
Ghesselink Mar 26, 2025
d680968
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 26, 2025
3ff9443
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 26, 2025
296fffb
re-add prev_result_succeeded
Ghesselink Mar 26, 2025
c039927
Update requirements.txt
aothms Mar 27, 2025
a2fa044
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 28, 2025
bd420f6
enable dialog, update tooltip and info page
rw-bsi Mar 29, 2025
2ec7ebf
use set -e instead of $? checks
rw-bsi Mar 29, 2025
1120721
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 29, 2025
b9f0b46
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 29, 2025
a5c954e
Merge pull request #177 from buildingSMART/IVS-244_Halt_On_Django_Mig…
rw-bsi Mar 30, 2025
54b6e28
Merge pull request #179 from buildingSMART/IVS-433_Capture_Self_Decla…
rw-bsi Mar 30, 2025
8031ad4
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 30, 2025
58a3a7e
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 30, 2025
6d774f6
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 30, 2025
86b6b6b
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 31, 2025
dc9517e
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 31, 2025
81be72f
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 31, 2025
ee6f6eb
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 31, 2025
647ba07
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Mar 31, 2025
ac36b9e
Update .gitignore
Ghesselink Mar 31, 2025
0763350
Initialise documentation with Github Pages and Sphinx
civilx64 Mar 28, 2024
ea48001
add env variable to github action
civilx64 Mar 29, 2024
126ca29
pin dependecies for building docs
civilx64 Mar 29, 2024
5f76ae7
adjust sphinx-version in container for sphinx-action
civilx64 Mar 29, 2024
a3b76c5
fix path for sphinx output
civilx64 Mar 29, 2024
2823f83
Update sphinx.yml
civilx64 Mar 29, 2024
766f63a
Update sphinx.yml
civilx64 Mar 29, 2024
9c9d50e
Update sphinx.yml
civilx64 Mar 29, 2024
6c1e9ab
Update sphinx.yml
civilx64 Mar 29, 2024
c893472
add deployment for static pages
civilx64 Mar 29, 2024
839fb03
edit static.yml
civilx64 Mar 29, 2024
88af28d
add static pages deployment to sphinx build
civilx64 Mar 29, 2024
6d40af8
combine deployment with build
civilx64 Mar 29, 2024
849b204
avoid duplicate artifacts
civilx64 Mar 29, 2024
3314298
add permission token
civilx64 Mar 29, 2024
a85fb26
add permission token
civilx64 Mar 29, 2024
6c5505d
separate actions for build only vs build+deploy
civilx64 Mar 29, 2024
cf26d5e
minor docs cleanup
civilx64 Mar 29, 2024
bd04721
Update validation_overview.md
aothms Apr 1, 2024
8fd3482
clarify non-normative checks in documentation
civilx64 Apr 2, 2024
3194044
add system architecture sketch to docs
civilx64 Apr 15, 2024
5b608fb
IVS-125 initial commit
civilx64 Sep 21, 2024
7b76dfa
Finish edits for IVS-125 v0.6.6 documentation updates
civilx64 Sep 22, 2024
b6f4d0c
fix header offset for rule details
civilx64 Sep 22, 2024
61f2a90
Update branch name in build-docs.yml
civilx64 Sep 27, 2024
3ac32ff
Update branch name in build-and-deploy-docs.yml
civilx64 Sep 27, 2024
db45eda
rename ALA001 to ALB021 in docs
civilx64 Oct 5, 2024
4e89588
Add Developer documentation for validation outcome severities
civilx64 Nov 12, 2024
147b967
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 4, 2025
142c92b
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 5, 2025
53446da
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 5, 2025
65736ba
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 7, 2025
60e8b94
Enable connection pool with psycopg
rw-bsi Apr 11, 2025
f54321b
Correctly parse DEBUG environment variable
rw-bsi Apr 11, 2025
b65c8f0
implement batch_size with bulk_create
rw-bsi Apr 12, 2025
28b538d
Merge pull request #176 from buildingSMART/IVS-38_Workaround_Searchin…
rw-bsi Apr 12, 2025
48d04e7
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 12, 2025
fe46b94
Enable Django SQL Explorer (read-only)
rw-bsi Apr 12, 2025
55dfbea
Merge pull request #184 from buildingSMART/IVS-509_Enable_Django_SQL_…
rw-bsi Apr 12, 2025
e1d5341
Replace nc with pg_isready
rw-bsi Apr 12, 2025
24d9a4b
Merge pull request #185 from buildingSMART/IVS-488_Replace_nc_with_pg…
civilx64 Apr 13, 2025
ec8c832
Merge pull request #182 from buildingSMART/IVS-504_Fix_Debug_Mode
rw-bsi Apr 14, 2025
b490b3d
Merge branch 'development' into IVS-508_Implement_batch_size
rw-bsi Apr 17, 2025
7eb8ece
Update .env
rw-bsi Apr 17, 2025
3c850e1
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 17, 2025
46d9882
Merge pull request #183 from buildingSMART/IVS-508_Implement_batch_size
rw-bsi Apr 17, 2025
90d229d
Merge pull request #181 from buildingSMART/IVS-502_DB_Connection_Pooling
rw-bsi Apr 17, 2025
85feae1
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 19, 2025
7e01506
replaced static() with own implementation
rw-bsi Apr 21, 2025
c21f4fb
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 23, 2025
f5c161d
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 25, 2025
a95ff54
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 26, 2025
a4f92ed
secure serving of uploaded files
rw-bsi Apr 27, 2025
2932689
additional authorisation check
rw-bsi Apr 27, 2025
e02c90f
Merge pull request #186 from buildingSMART/IVS-514_Unable_to_download…
rw-bsi Apr 27, 2025
48274cc
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 28, 2025
2e2aa93
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Apr 30, 2025
eedc81a
Update of submodules (bSI-Bot via GH action)
github-actions[bot] May 1, 2025
b82627c
expose Model entity via the API
rw-bsi May 2, 2025
67e5acc
Merge pull request #187 from buildingSMART/IVS-529_Expose_Model_via_API
rw-bsi May 2, 2025
7e5b22f
Use venv Python binary in Makefile targets
Ghesselink May 3, 2025
7a62734
Merge pull request #189 from buildingSMART/fix/use-venv-python-binaries
Ghesselink May 5, 2025
b587d3b
Merge pull request #174 from buildingSMART/IVS-443-Mark-parse-info-ta…
Ghesselink May 5, 2025
5451f91
Use simple_spf only in parse_info task
Ghesselink May 3, 2025
df87407
set pytest to simple_spf only
Ghesselink May 3, 2025
2466ba2
address syntax errors in testfiles
Ghesselink May 3, 2025
3dc6695
avoid pydantic explicit ifcopenshell.util.mvd_info
Ghesselink May 3, 2025
441eade
update ifcopenshell build & reflect changes
Ghesselink May 8, 2025
46c2219
revert testcase change
Ghesselink May 8, 2025
6e54a46
Merge pull request #188 from buildingSMART/IVS-516-Use-spf-only-in-pa…
Ghesselink May 8, 2025
24f1d4a
Update of submodules (bSI-Bot via GH action)
github-actions[bot] May 10, 2025
53a9742
Modify description/MVD field in UI
Ghesselink May 13, 2025
1cfb856
Initialize certificate store
aothms May 6, 2025
181aa58
Digital signatures
aothms May 8, 2025
1f8b360
Add utility scripts
aothms May 8, 2025
9341ecb
Minor
aothms May 8, 2025
55346e5
Update dev docs on submodules
aothms May 15, 2025
ef8eaf3
VerificationResult -> SignatureVerificationResult
aothms May 15, 2025
559cc7e
case
aothms May 15, 2025
6b0340d
Clarifications
aothms May 15, 2025
edeaf89
Correct comment
aothms May 15, 2025
7fd475b
Submodule
aothms May 16, 2025
2a98fcf
Clean before submodule
aothms May 16, 2025
0bf4b4f
Remove cicd ignore rule
aothms May 16, 2025
4e8a108
Ignore .env file in clean
aothms May 16, 2025
20d19fc
More -e ignores in clean
aothms May 16, 2025
74f3650
Update of submodules (bSI-Bot via GH action)
github-actions[bot] May 16, 2025
166ab00
Update of submodules (bSI-Bot via GH action)
github-actions[bot] May 21, 2025
1b7cd02
Update of submodules (bSI-Bot via GH action)
github-actions[bot] May 24, 2025
8bd90fd
IVS-160 - GRF002
Ghesselink Jun 1, 2025
ec52b39
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 1, 2025
51dacca
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 4, 2025
e0b9c81
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 8, 2025
f74b56d
Merge pull request #191 from buildingSMART/IVS-160-GRF002
civilx64 Jun 9, 2025
dc94c09
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 9, 2025
fbbdbae
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 9, 2025
b4074e1
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 12, 2025
e3e63f2
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 12, 2025
06c6b76
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 12, 2025
120e7f5
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 12, 2025
84ef3b6
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 12, 2025
50745c8
Only show header when sigs are present
aothms Jun 13, 2025
a1134b1
Merge pull request #192 from buildingSMART/ivs549-header
rw-bsi Jun 14, 2025
3f1bbac
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 16, 2025
87694eb
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 16, 2025
01fde07
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 16, 2025
33b798f
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 17, 2025
86fb8f1
IVS-552 - Include feature tags in documentation
Ghesselink Jun 17, 2025
f9f7c89
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 19, 2025
a9f2710
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 23, 2025
3ff7a8d
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 23, 2025
c0623c2
Update docs/dev/gherkin_deep_dive.md
Ghesselink Jun 23, 2025
81c7480
Update docs/dev/gherkin_deep_dive.md
Ghesselink Jun 23, 2025
656454a
Update docs/dev/gherkin_deep_dive.md
Ghesselink Jun 23, 2025
6547bab
Update docs/dev/gherkin_deep_dive.md
Ghesselink Jun 23, 2025
100dc11
modify ip & ia docs
Ghesselink Jun 23, 2025
eb05b7c
Update docs/dev/gherkin_deep_dive.md
Ghesselink Jun 23, 2025
bada610
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 25, 2025
6742dfe
IVS-520 - syntax & header task orchestration
Ghesselink Jun 25, 2025
0ff84de
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 25, 2025
2f61e04
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 25, 2025
504b17c
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 25, 2025
4ed988e
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 26, 2025
6f1f460
change syntax_header to header_syntax
Ghesselink Jun 26, 2025
66f2359
rm docs and avoid merge conflicts with IVS-552
Ghesselink Jun 26, 2025
4d7143a
Merge pull request #193 from buildingSMART/IVS-552-Document-feature-tags
Ghesselink Jun 26, 2025
457e2aa
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 29, 2025
72643c3
Merge branch 'development' into IVS-520-Tasks-orchestration
Ghesselink Jun 29, 2025
8b64a97
Merge pull request #194 from buildingSMART/IVS-520-Tasks-orchestration
Ghesselink Jun 29, 2025
9b86f6a
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 29, 2025
03bcee1
new ifcopenshell build
Ghesselink Jun 30, 2025
bdffbbb
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 30, 2025
43ec9d2
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 30, 2025
6ea5854
update ifcopensh build
Ghesselink Jun 30, 2025
db75673
Update tests_schema_validation_task.py
Ghesselink Jun 30, 2025
ddc7c6a
Update of submodules (bSI-Bot via GH action)
github-actions[bot] Jun 30, 2025
1c69243
fix formatting for ALS017 results
civilx64 Jul 3, 2025
ef4ae1c
Merge pull request #195 from buildingSMART/426-ALS017-observed-text-f…
Ghesselink Jul 6, 2025
ada3712
update gitignore
Ghesselink Jul 6, 2025
704e7a1
Syntax status combine
aothms Jul 9, 2025
fc14ab8
Merge pull request #197 from buildingSMART/ivs-567-fix-syntax-status-…
Ghesselink Jul 10, 2025
8f08bd9
Update views_legacy.py
rw-bsi Jul 13, 2025
caf1a7a
Merge pull request #198 from buildingSMART/IVS-559_Report_fails_to_re…
rw-bsi Jul 13, 2025
8bdf015
Merge branch 'development' into docs/gh-pages
civilx64 Jul 14, 2025
4a03934
Merge branch 'development' into docs/gh-pages
civilx64 Jul 14, 2025
378aea6
update docs
civilx64 Jul 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ DJANGO_SECRET_KEY = django-insecure-um7-^+&jbk_=80*xcc9uf4nh$4koida7)ja&6!vb*$8@
DJANGO_ALLOWED_HOSTS = localhost
DJANGO_TRUSTED_ORIGINS = http://localhost:3000 http://localhost http://localhost:8000
DJANGO_LOG_LEVEL = INFO
GHERKIN_LOG_FOLDER = /gherkin_logs
DJANGO_GUNICORN_WORKERS = 3
DJANGO_GUNICORN_THREADS_PER_WORKER = 4

Expand All @@ -31,6 +32,7 @@ CELERY_TASK_SOFT_TIME_LIMIT = 3600
CELERY_TASK_TIME_LIMIT = 4000
TASK_TIMEOUT_LIMIT = 3600
DJANGO_DB_USER_CONTEXT = SYSTEM
DJANGO_DB_BULK_CREATE_BATCH_SIZE = 1000
CELERY_CONCURRENCY = 4

# Email
Expand All @@ -46,4 +48,4 @@ B2C_CLIENT_ID = <B2C_CLIENT_ID>
B2C_CLIENT_SECRET = <B2C_CLIENT_SECRET>
B2C_AUTHORITY = <B2C_AUTHORITY>
B2C_USER_FLOW = <B2C_USER_FLOW>
USE_WHITELIST = False
USE_WHITELIST = False
24 changes: 20 additions & 4 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ on:
- development
paths-ignore:
- 'README.md'
- '.github/**'
pull_request:
branches:
- development
Expand Down Expand Up @@ -58,6 +57,8 @@ jobs:

- name: Fetch submodules
run: |
git clean -fdx -e ${{ vars.ENV_FILE }} -e 'redeploy.*.sh' -e 'docker/'
git submodule foreach --recursive 'git clean -fdx'
cd backend
cd apps
git submodule update --init --recursive
Expand All @@ -79,7 +80,16 @@ jobs:
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
pip install ifcopenshell # TEMP workaround

- name: Install ifcopenshell package (temp)
run: |
cd backend
source venv/bin/activate
# use version of ifcopenshell with desired schema parsing
# TODO: revert to pyPI when schema parsing is published in the future
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.3-260bc80-linux64.zip"
mkdir -p venv/lib/python3.11/site-packages
unzip -d venv/lib/python3.11/site-packages /tmp/ifcopenshell_python.zip

- name: Check Django config
run: |
Expand All @@ -91,7 +101,12 @@ jobs:
run: |
cd backend
source venv/bin/activate
python3 manage.py test
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps/ifc_validation_models --settings apps.ifc_validation_models.test_settings --debug-mode --verbosity 3
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps.ifc_validation.tests.tests_header_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps.ifc_validation.tests.tests_header_syntax_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps.ifc_validation.tests.tests_syntax_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps.ifc_validation.tests.tests_schema_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps.ifc_validation.tests.tests_bsdd_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3

deploy:

Expand Down Expand Up @@ -125,10 +140,11 @@ jobs:
sshpass ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }} bash <<'ENDSSH'
cd ${{ vars.REPO_CLONE_PATH }}
git checkout -q ${{ vars.BRANCH_NAME }} && git pull
git clean -fdx -e ${{ vars.ENV_FILE }} -e 'redeploy.*.sh' -e 'docker/'
git submodule foreach --recursive 'git clean -fdx'
sudo make fetch-modules
cd ${{ vars.REPO_CLONE_PATH }}/backend/apps/ifc_validation/checks/ifc_gherkin_rules && git checkout -q ${{ vars.BRANCH_NAME }} && git pull
cd ./ifc_validation_models && git checkout -q ${{ vars.BRANCH_NAME }} && git pull
cd ${{ vars.REPO_CLONE_PATH }}/backend/apps/ifc_validation/checks/step_file_parser && git checkout -q master && git pull
cd ${{ vars.REPO_CLONE_PATH }}/backend/apps/ifc_validation_models && git checkout -q ${{ vars.BRANCH_NAME }} && git pull
cd ${{ vars.REPO_CLONE_PATH }}
./check-submodules.sh
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
.env.*
redeploy.*
.VERSION
tmp*
django_static
local

### VisualStudioCode ###
.vscode/*
Expand Down
7 changes: 3 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@
path = backend/apps/ifc_validation/checks/ifc_gherkin_rules
url = https://github.com/buildingSMART/ifc-gherkin-rules
branch = development
[submodule "backend/apps/ifc_validation/checks/step_file_parser"]
path = backend/apps/ifc_validation/checks/step_file_parser
url = https://github.com/IfcOpenShell/step-file-parser
branch = master
[submodule "backend/apps/ifc_validation_models"]
path = backend/apps/ifc_validation_models
url = https://github.com/buildingSMART/ifc-validation-data-model
branch = development
[submodule "backend/apps/ifc_validation/checks/signatures/store"]
path = backend/apps/ifc_validation/checks/signatures/store
url = https://github.com/buildingsmart-certificates/validation-service-vendor-certificates
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,6 @@ clean-all:

fetch-modules:
git submodule update --init --recursive
git submodule update --remote
git submodule foreach git clean -f .
git submodule foreach git reset --hard
git submodule update --remote --recursive
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@

# Application Structure

The application consists of three main submodules, each hosted in separate GitHub repositories. Docker Compose is configured to automatically bind the correct submodule versions for local deployment.
The application consists of two main submodules, each hosted in separate GitHub repositories. Docker Compose is configured to automatically bind the correct submodule versions for local deployment.

### Submodules

Documentation of the seperate functionalities can be found within each submodule.

1. **File Parser**: A module within IfcOpenShell, dedicated to parsing files. https://github.com/IfcOpenShell/step-file-parser
2. **Gherkin Rules**: Contains the rules for validation. It can be run independently by cloning the repository and executing:
1. **Gherkin Rules**: Contains the rules for validation. It can be run independently by cloning the repository and executing:
https://github.com/buildingSMART/ifc-gherkin-rules

```
Expand All @@ -27,7 +26,7 @@ https://github.com/buildingSMART/ifc-gherkin-rules
python test/test_main.py path_to_separate_file.py # For a separate file
``````

3. **Shared DataModel**: This module includes Django data models shared between the main repository and the Gherkin repository, serving as a submodule for both.
2. **Shared DataModel**: This module includes Django data models shared between the main repository and the Gherkin repository, serving as a submodule for both.
https://github.com/buildingSMART/ifc-validation-data-model

## Running Validation Checks
Expand Down Expand Up @@ -144,7 +143,7 @@ flower - Celery flower dashboard

```shell
cd backend
make install
make install (or make install-macos/install-macos-m1)
make start-django
```

Expand Down
4 changes: 3 additions & 1 deletion backend/.env
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
DEBUG = True
ENV = Development
PUBLIC_URL = http://localhost:3000
GHERKIN_LOG_FOLDER=.dev/gherkin_logs

# Django
MEDIA_ROOT = .dev/files_storage
Expand All @@ -34,6 +35,7 @@ CELERY_TASK_SOFT_TIME_LIMIT = 3600
CELERY_TASK_TIME_LIMIT = 4000
TASK_TIMEOUT_LIMIT = 3600
DJANGO_DB_USER_CONTEXT = SYSTEM
DJANGO_DB_BULK_CREATE_BATCH_SIZE = 1000

# Email
MAILGUN_API_URL = <MG_API_URL>
Expand All @@ -48,4 +50,4 @@ B2C_CLIENT_ID = <B2C_CLIENT_ID>
B2C_CLIENT_SECRET = <B2C_CLIENT_SECRET>
B2C_AUTHORITY = <B2C_AUTHORITY>
B2C_USER_FLOW = <B2C_USER_FLOW>
USE_WHITELIST = False
USE_WHITELIST = False
91 changes: 55 additions & 36 deletions backend/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
.ONESHELL:

VIRTUAL_ENV = .dev/venv
PYTHON = $(VIRTUAL_ENV)/bin/python
PIP = $(VIRTUAL_ENV)/bin/pip

none:
@echo "MAKE: Enter at least one target (venv, install, install-dev, start-backend, start-worker, clean)"
Expand All @@ -10,53 +12,74 @@ venv:
test -d $(VIRTUAL_ENV) || python3.11 -m venv $(VIRTUAL_ENV)

install: venv
. $(VIRTUAL_ENV)/bin/activate && \
pip install --upgrade pip && \
pip install -r requirements.txt && \
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.7.9-c18e4ea-linux64.zip" && \
mkdir -p $(VIRTUAL_ENV)/lib/python3.11/site-packages && \
unzip -f -d $(VIRTUAL_ENV)/lib/python3.11/site-packages /tmp/ifcopenshell_python.zip && \
$(PIP) install --upgrade pip
$(PIP) install -r requirements.txt
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.3-260bc80-linux64.zip"
mkdir -p $(VIRTUAL_ENV)/lib/python3.11/site-packages
unzip -f -d $(VIRTUAL_ENV)/lib/python3.11/site-packages /tmp/ifcopenshell_python.zip
rm /tmp/ifcopenshell_python.zip

install-macos: venv
$(PIP) install --upgrade pip
$(PIP) install -r requirements.txt
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.3-260bc80-macos64.zip"
mkdir -p $(VIRTUAL_ENV)/lib/python3.11/site-packages
unzip /tmp/ifcopenshell_python.zip -d $(VIRTUAL_ENV)/lib/python3.11/site-packages
rm /tmp/ifcopenshell_python.zip

install-macos-m1: venv
$(PIP) install --upgrade pip
$(PIP) install -r requirements.txt
wget -O /tmp/ifcopenshell_python.zip "https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-311-v0.8.3-260bc80-macosm164.zip"
mkdir -p $(VIRTUAL_ENV)/lib/python3.11/site-packages
unzip /tmp/ifcopenshell_python.zip -d $(VIRTUAL_ENV)/lib/python3.11/site-packages
rm /tmp/ifcopenshell_python.zip

fetch-modules:
cd ./apps && \
git submodule update --init --recursive
cd ./apps && git submodule update --init --recursive

start-django: start-backend

start-backend:
. $(VIRTUAL_ENV)/bin/activate && \
python3 manage.py makemigrations && \
python3 manage.py migrate && \
python3 manage.py runserver
$(PYTHON) manage.py makemigrations
$(PYTHON) manage.py migrate
$(PYTHON) manage.py collectstatic --noinput
$(PYTHON) manage.py runserver

start-worker:
. $(VIRTUAL_ENV)/bin/activate && \
celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker@%n
$(PYTHON) -m celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker@%n

start-worker2:
. $(VIRTUAL_ENV)/bin/activate && \
celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker2@%n
$(PYTHON) -m celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker2@%n

start-worker3:
. $(VIRTUAL_ENV)/bin/activate && \
celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker3@%n
$(PYTHON) -m celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker3@%n

start-worker4:
. $(VIRTUAL_ENV)/bin/activate && \
celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker4@%n
$(PYTHON) -m celery --app=core worker --loglevel=DEBUG --concurrency 2 --task-events --hostname=worker4@%n

start-worker-scheduler:
. $(VIRTUAL_ENV)/bin/activate && \
celery --app=core worker --loglevel=DEBUG --concurrency 5 --task-events --beat
$(PYTHON) -m celery --app=core worker --loglevel=DEBUG --concurrency 5 --task-events --beat

test: test-models test-bsdd-task test-header-validation-task test-syntax-task test-syntax-header-validation-task test-schema-task

test-models:
. $(VIRTUAL_ENV)/bin/activate && \
python3 manage.py test apps/ifc_validation_models --settings apps.ifc_validation_models.test_settings --debug-mode --verbosity 3
MEDIA_ROOT=./apps/ifc_validation/fixtures $(PYTHON) manage.py test apps/ifc_validation_models --settings apps.ifc_validation_models.test_settings --debug-mode --verbosity 3

test-bsdd-task:
MEDIA_ROOT=./apps/ifc_validation/fixtures $(PYTHON) manage.py test apps.ifc_validation.tests.tests_bsdd_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3

test-syntax-header-validation-task:
MEDIA_ROOT=./apps/ifc_validation/fixtures $(PYTHON) manage.py test apps.ifc_validation.tests.tests_header_syntax_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3

test-header-validation-task:
MEDIA_ROOT=./apps/ifc_validation/fixtures $(PYTHON) manage.py test apps.ifc_validation.tests.tests_header_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3

test-syntax-task:
MEDIA_ROOT=./apps/ifc_validation/fixtures $(PYTHON) manage.py test apps.ifc_validation.tests.tests_header_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3

test-tasks:
. $(VIRTUAL_ENV)/bin/activate && \
MEDIA_ROOT=./apps/ifc_validation/fixtures python3 manage.py test apps.ifc_validation.tests_tasks --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3
test-schema-task:
MEDIA_ROOT=./apps/ifc_validation/fixtures $(PYTHON) manage.py test apps.ifc_validation.tests.tests_schema_validation_task --settings apps.ifc_validation.test_settings --debug-mode --verbosity 3

clean:
rm -rf .dev
Expand All @@ -66,12 +89,8 @@ clean:
find . -type d -name __pycache__ -prune -exec rm -rf {} \;

init-db:
. $(VIRTUAL_ENV)/bin/activate && \
PGPASSWORD=postgres psql -h localhost -U postgres --dbname postgres -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;" && \
rm ./apps/ifc_validation_models/migrations/0001_initial.bak || true && \
mv ./apps/ifc_validation_models/migrations/0001_initial.py ./apps/ifc_validation_models/migrations/0001_initial.bak || true && \
rm ./apps/ifc_validation_models/migrations/0001_initial.bak || true && \
python3 manage.py makemigrations && \
python3 manage.py migrate && \
DJANGO_SUPERUSER_USERNAME=root DJANGO_SUPERUSER_PASSWORD=root DJANGO_SUPERUSER_EMAIL=root@localhost python3 manage.py createsuperuser --noinput && \
DJANGO_SUPERUSER_USERNAME=SYSTEM DJANGO_SUPERUSER_PASSWORD=system DJANGO_SUPERUSER_EMAIL=system@localhost python3 manage.py createsuperuser --noinput
PGPASSWORD=postgres psql -h localhost -U postgres --dbname postgres -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
$(PYTHON) manage.py makemigrations
$(PYTHON) manage.py migrate
DJANGO_SUPERUSER_USERNAME=root DJANGO_SUPERUSER_PASSWORD=root DJANGO_SUPERUSER_EMAIL=root@localhost $(PYTHON) manage.py createsuperuser --noinput
DJANGO_SUPERUSER_USERNAME=SYSTEM DJANGO_SUPERUSER_PASSWORD=system DJANGO_SUPERUSER_EMAIL=system@localhost $(PYTHON) manage.py createsuperuser --noinput
2 changes: 1 addition & 1 deletion backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
1. Syntax Validation

```shell
python3 apps/ifc_validation/checks/step_file_parser/main.py --json filename
python3 -m ifcopenshell.simple_spf --json filename
```

2. Parse Info
Expand Down
Loading