wagov-squ 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wagov_squ-1.4.0/.devcontainer/devcontainer.json +12 -0
- wagov_squ-1.4.0/.gitattributes +3 -0
- wagov_squ-1.4.0/.github/dependabot.yml +21 -0
- wagov_squ-1.4.0/.github/workflows/codeql.yml +78 -0
- wagov_squ-1.4.0/.github/workflows/dependency-review.yml +27 -0
- wagov_squ-1.4.0/.github/workflows/deploy.yaml +56 -0
- wagov_squ-1.4.0/.github/workflows/release.yml +39 -0
- wagov_squ-1.4.0/.github/workflows/scorecard.yml +78 -0
- wagov_squ-1.4.0/.gitignore +153 -0
- wagov_squ-1.4.0/.pre-commit-config.yaml +22 -0
- wagov_squ-1.4.0/AGENTS.md +22 -0
- wagov_squ-1.4.0/CHANGELOG.md +27 -0
- wagov_squ-1.4.0/LICENSE +201 -0
- wagov_squ-1.4.0/MANIFEST.in +6 -0
- wagov_squ-1.4.0/PKG-INFO +172 -0
- wagov_squ-1.4.0/README.md +124 -0
- wagov_squ-1.4.0/SECURITY.md +19 -0
- wagov_squ-1.4.0/atlaskit-transformer.js +32 -0
- wagov_squ-1.4.0/dbt_example_project/.gitignore +6 -0
- wagov_squ-1.4.0/dbt_example_project/README.md +15 -0
- wagov_squ-1.4.0/dbt_example_project/analyses/.gitkeep +0 -0
- wagov_squ-1.4.0/dbt_example_project/dbt_project.yml +36 -0
- wagov_squ-1.4.0/dbt_example_project/macros/.gitkeep +0 -0
- wagov_squ-1.4.0/dbt_example_project/models/squ/T1547_001.kql +7 -0
- wagov_squ-1.4.0/dbt_example_project/models/squ/hunt.sql +1 -0
- wagov_squ-1.4.0/dbt_example_project/models/squ/schema.yml +15 -0
- wagov_squ-1.4.0/dbt_example_project/profiles.yml +10 -0
- wagov_squ-1.4.0/dbt_example_project/seeds/.gitkeep +0 -0
- wagov_squ-1.4.0/dbt_example_project/snapshots/.gitkeep +0 -0
- wagov_squ-1.4.0/dbt_example_project/tests/.gitkeep +0 -0
- wagov_squ-1.4.0/justfile +65 -0
- wagov_squ-1.4.0/package-lock.json +1314 -0
- wagov_squ-1.4.0/package.json +11 -0
- wagov_squ-1.4.0/pyproject.toml +98 -0
- wagov_squ-1.4.0/src/nbdev_squ/__init__.py +17 -0
- wagov_squ-1.4.0/src/wagov_squ/__init__.py +21 -0
- wagov_squ-1.4.0/src/wagov_squ/api.py +488 -0
- wagov_squ-1.4.0/src/wagov_squ/clients.py +7 -0
- wagov_squ-1.4.0/src/wagov_squ/core.py +205 -0
- wagov_squ-1.4.0/src/wagov_squ/frame.py +92 -0
- wagov_squ-1.4.0/src/wagov_squ/legacy.py +321 -0
- wagov_squ-1.4.0/tests/__init__.py +1 -0
- wagov_squ-1.4.0/tests/test_api.py +133 -0
- wagov_squ-1.4.0/tests/test_core.py +24 -0
- wagov_squ-1.4.0/tests/test_frame.py +143 -0
- wagov_squ-1.4.0/tests/test_integration.py +288 -0
- wagov_squ-1.4.0/uv.lock +5274 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wagov-dtt devcontainer-base",
|
|
3
|
+
"image": "ghcr.io/wagov-dtt/devcontainer-base",
|
|
4
|
+
"privileged": true,
|
|
5
|
+
"runArgs": [
|
|
6
|
+
"--cgroupns=host"
|
|
7
|
+
],
|
|
8
|
+
"mounts": [
|
|
9
|
+
"source=dind-var-lib-docker,target=/var/lib/docker,type=volume"
|
|
10
|
+
],
|
|
11
|
+
"remoteUser": "vscode"
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: "pip" # See documentation for possible values
|
|
9
|
+
directory: "/" # Location of package manifests
|
|
10
|
+
schedule:
|
|
11
|
+
interval: "weekly"
|
|
12
|
+
|
|
13
|
+
- package-ecosystem: github-actions
|
|
14
|
+
directory: /
|
|
15
|
+
schedule:
|
|
16
|
+
interval: daily
|
|
17
|
+
|
|
18
|
+
- package-ecosystem: npm
|
|
19
|
+
directory: /
|
|
20
|
+
schedule:
|
|
21
|
+
interval: daily
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
|
2
|
+
# to commit it to your repository.
|
|
3
|
+
#
|
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
|
5
|
+
# or to provide custom queries or build logic.
|
|
6
|
+
#
|
|
7
|
+
# ******** NOTE ********
|
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
|
10
|
+
# supported CodeQL languages.
|
|
11
|
+
#
|
|
12
|
+
name: "CodeQL"
|
|
13
|
+
|
|
14
|
+
on:
|
|
15
|
+
push:
|
|
16
|
+
branches: ["main"]
|
|
17
|
+
pull_request:
|
|
18
|
+
# The branches below must be a subset of the branches above
|
|
19
|
+
branches: ["main"]
|
|
20
|
+
schedule:
|
|
21
|
+
- cron: "0 0 * * 1"
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: read
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
analyze:
|
|
28
|
+
name: Analyze
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
permissions:
|
|
31
|
+
actions: read
|
|
32
|
+
contents: read
|
|
33
|
+
security-events: write
|
|
34
|
+
|
|
35
|
+
strategy:
|
|
36
|
+
fail-fast: false
|
|
37
|
+
matrix:
|
|
38
|
+
language: ["javascript", "python"]
|
|
39
|
+
# CodeQL supports [ $supported-codeql-languages ]
|
|
40
|
+
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
|
41
|
+
|
|
42
|
+
steps:
|
|
43
|
+
- name: Harden Runner
|
|
44
|
+
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
|
|
45
|
+
with:
|
|
46
|
+
egress-policy: audit
|
|
47
|
+
|
|
48
|
+
- name: Checkout repository
|
|
49
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
50
|
+
|
|
51
|
+
# Initializes the CodeQL tools for scanning.
|
|
52
|
+
- name: Initialize CodeQL
|
|
53
|
+
uses: github/codeql-action/init@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
|
54
|
+
with:
|
|
55
|
+
languages: ${{ matrix.language }}
|
|
56
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
57
|
+
# By default, queries listed here will override any specified in a config file.
|
|
58
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
59
|
+
|
|
60
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
61
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
|
62
|
+
- name: Autobuild
|
|
63
|
+
uses: github/codeql-action/autobuild@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
|
64
|
+
|
|
65
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
|
66
|
+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
|
67
|
+
|
|
68
|
+
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
|
69
|
+
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
|
70
|
+
|
|
71
|
+
# - run: |
|
|
72
|
+
# echo "Run, Build Application using script"
|
|
73
|
+
# ./location_of_script_within_repo/buildscript.sh
|
|
74
|
+
|
|
75
|
+
- name: Perform CodeQL Analysis
|
|
76
|
+
uses: github/codeql-action/analyze@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
|
77
|
+
with:
|
|
78
|
+
category: "/language:${{matrix.language}}"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Dependency Review Action
|
|
2
|
+
#
|
|
3
|
+
# This Action will scan dependency manifest files that change as part of a Pull Request,
|
|
4
|
+
# surfacing known-vulnerable versions of the packages declared or updated in the PR.
|
|
5
|
+
# Once installed, if the workflow run is marked as required,
|
|
6
|
+
# PRs introducing known-vulnerable packages will be blocked from merging.
|
|
7
|
+
#
|
|
8
|
+
# Source repository: https://github.com/actions/dependency-review-action
|
|
9
|
+
name: 'Dependency Review'
|
|
10
|
+
on: [pull_request]
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
dependency-review:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- name: Harden Runner
|
|
20
|
+
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
|
|
21
|
+
with:
|
|
22
|
+
egress-policy: audit
|
|
23
|
+
|
|
24
|
+
- name: 'Checkout Repository'
|
|
25
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
26
|
+
- name: 'Dependency Review'
|
|
27
|
+
uses: actions/dependency-review-action@da24556b548a50705dd671f47852072ea4c105d9 # v4.7.1
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Build and upload docs to GitHub Pages
|
|
2
|
+
|
|
3
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
4
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
5
|
+
concurrency:
|
|
6
|
+
group: "pages"
|
|
7
|
+
cancel-in-progress: false
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches: ["main"]
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
deploy:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
environment:
|
|
18
|
+
name: github-pages
|
|
19
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
20
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
pages: write
|
|
24
|
+
id-token: write
|
|
25
|
+
steps:
|
|
26
|
+
- name: Harden Runner
|
|
27
|
+
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
|
|
28
|
+
with:
|
|
29
|
+
egress-policy: block
|
|
30
|
+
allowed-endpoints: >
|
|
31
|
+
api.github.com:443
|
|
32
|
+
download.pytorch.org:443
|
|
33
|
+
files.pythonhosted.org:443
|
|
34
|
+
github.com:443
|
|
35
|
+
objects.githubusercontent.com:443
|
|
36
|
+
pypi.org:443
|
|
37
|
+
quarto.org:443
|
|
38
|
+
registry.npmjs.org:443
|
|
39
|
+
www.quarto.org:443
|
|
40
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
41
|
+
- uses: extractions/setup-just@v3
|
|
42
|
+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
43
|
+
with:
|
|
44
|
+
python-version: '3.12'
|
|
45
|
+
- uses: quarto-dev/quarto-actions/setup@9e48da27e184aa238fcb49f5db75469626d43adb # v2.1.9
|
|
46
|
+
- run: just install
|
|
47
|
+
- name: Setup Pages
|
|
48
|
+
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
|
|
49
|
+
- name: Upload artifact
|
|
50
|
+
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
|
|
51
|
+
with:
|
|
52
|
+
# Upload built _docs
|
|
53
|
+
path: '_docs'
|
|
54
|
+
- name: Deploy to GitHub Pages
|
|
55
|
+
id: deployment
|
|
56
|
+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Release and Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
release:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
id-token: write
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Install uv
|
|
19
|
+
uses: astral-sh/setup-uv@v4
|
|
20
|
+
|
|
21
|
+
- name: Set up Node.js
|
|
22
|
+
uses: actions/setup-node@v4
|
|
23
|
+
with:
|
|
24
|
+
node-version: 'lts/*'
|
|
25
|
+
|
|
26
|
+
- name: Build package
|
|
27
|
+
run: |
|
|
28
|
+
npm install
|
|
29
|
+
npm run build
|
|
30
|
+
uv build
|
|
31
|
+
|
|
32
|
+
- name: Create GitHub Release
|
|
33
|
+
uses: softprops/action-gh-release@v2
|
|
34
|
+
with:
|
|
35
|
+
files: dist/*
|
|
36
|
+
generate_release_notes: true
|
|
37
|
+
|
|
38
|
+
- name: Publish to PyPI
|
|
39
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub. They are provided
|
|
2
|
+
# by a third-party and are governed by separate terms of service, privacy
|
|
3
|
+
# policy, and support documentation.
|
|
4
|
+
|
|
5
|
+
name: Scorecard supply-chain security
|
|
6
|
+
on:
|
|
7
|
+
# For Branch-Protection check. Only the default branch is supported. See
|
|
8
|
+
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
|
|
9
|
+
branch_protection_rule:
|
|
10
|
+
# To guarantee Maintained check is occasionally updated. See
|
|
11
|
+
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
|
|
12
|
+
schedule:
|
|
13
|
+
- cron: '21 19 * * 4'
|
|
14
|
+
push:
|
|
15
|
+
branches: [ "main" ]
|
|
16
|
+
|
|
17
|
+
# Declare default permissions as read only.
|
|
18
|
+
permissions: read-all
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
analysis:
|
|
22
|
+
name: Scorecard analysis
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
permissions:
|
|
25
|
+
# Needed to upload the results to code-scanning dashboard.
|
|
26
|
+
security-events: write
|
|
27
|
+
# Needed to publish results and get a badge (see publish_results below).
|
|
28
|
+
id-token: write
|
|
29
|
+
# Uncomment the permissions below if installing in a private repository.
|
|
30
|
+
# contents: read
|
|
31
|
+
# actions: read
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- name: Harden Runner
|
|
35
|
+
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
|
|
36
|
+
with:
|
|
37
|
+
egress-policy: audit
|
|
38
|
+
|
|
39
|
+
- name: "Checkout code"
|
|
40
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
41
|
+
with:
|
|
42
|
+
persist-credentials: false
|
|
43
|
+
|
|
44
|
+
- name: "Run analysis"
|
|
45
|
+
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
|
46
|
+
with:
|
|
47
|
+
results_file: results.sarif
|
|
48
|
+
results_format: sarif
|
|
49
|
+
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
|
|
50
|
+
# - you want to enable the Branch-Protection check on a *public* repository, or
|
|
51
|
+
# - you are installing Scorecard on a *private* repository
|
|
52
|
+
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
|
|
53
|
+
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
|
|
54
|
+
|
|
55
|
+
# Public repositories:
|
|
56
|
+
# - Publish results to OpenSSF REST API for easy access by consumers
|
|
57
|
+
# - Allows the repository to include the Scorecard badge.
|
|
58
|
+
# - See https://github.com/ossf/scorecard-action#publishing-results.
|
|
59
|
+
# For private repositories:
|
|
60
|
+
# - `publish_results` will always be set to `false`, regardless
|
|
61
|
+
# of the value entered here.
|
|
62
|
+
publish_results: true
|
|
63
|
+
|
|
64
|
+
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
|
65
|
+
# format to the repository Actions tab.
|
|
66
|
+
- name: "Upload artifact"
|
|
67
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
68
|
+
with:
|
|
69
|
+
name: SARIF file
|
|
70
|
+
path: results.sarif
|
|
71
|
+
retention-days: 5
|
|
72
|
+
|
|
73
|
+
# Upload the results to GitHub's code scanning dashboard (optional).
|
|
74
|
+
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
|
75
|
+
- name: "Upload to code-scanning"
|
|
76
|
+
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
|
77
|
+
with:
|
|
78
|
+
sarif_file: results.sarif
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Build outputs
|
|
2
|
+
_docs/
|
|
3
|
+
_proc/
|
|
4
|
+
node_modules/
|
|
5
|
+
dist/
|
|
6
|
+
build/
|
|
7
|
+
*.bundle.js
|
|
8
|
+
|
|
9
|
+
# Temporary files
|
|
10
|
+
*.bak
|
|
11
|
+
*.log
|
|
12
|
+
*~
|
|
13
|
+
~*
|
|
14
|
+
_tmp*
|
|
15
|
+
tmp*
|
|
16
|
+
tags
|
|
17
|
+
|
|
18
|
+
# UV/Python package management
|
|
19
|
+
.venv/
|
|
20
|
+
|
|
21
|
+
# Byte-compiled / optimized / DLL files
|
|
22
|
+
__pycache__/
|
|
23
|
+
*.py[cod]
|
|
24
|
+
*$py.class
|
|
25
|
+
|
|
26
|
+
# C extensions
|
|
27
|
+
*.so
|
|
28
|
+
|
|
29
|
+
# Distribution / packaging
|
|
30
|
+
.Python
|
|
31
|
+
env/
|
|
32
|
+
develop-eggs/
|
|
33
|
+
downloads/
|
|
34
|
+
eggs/
|
|
35
|
+
.eggs/
|
|
36
|
+
lib/
|
|
37
|
+
lib64/
|
|
38
|
+
parts/
|
|
39
|
+
sdist/
|
|
40
|
+
var/
|
|
41
|
+
wheels/
|
|
42
|
+
*.egg-info/
|
|
43
|
+
.installed.cfg
|
|
44
|
+
*.egg
|
|
45
|
+
|
|
46
|
+
# PyInstaller
|
|
47
|
+
# Usually these files are written by a python script from a template
|
|
48
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
49
|
+
*.manifest
|
|
50
|
+
*.spec
|
|
51
|
+
|
|
52
|
+
# Installer logs
|
|
53
|
+
pip-log.txt
|
|
54
|
+
pip-delete-this-directory.txt
|
|
55
|
+
|
|
56
|
+
# Unit test / coverage reports
|
|
57
|
+
htmlcov/
|
|
58
|
+
.tox/
|
|
59
|
+
.coverage
|
|
60
|
+
.coverage.*
|
|
61
|
+
.cache
|
|
62
|
+
nosetests.xml
|
|
63
|
+
coverage.xml
|
|
64
|
+
*.cover
|
|
65
|
+
.hypothesis/
|
|
66
|
+
|
|
67
|
+
# Translations
|
|
68
|
+
*.mo
|
|
69
|
+
*.pot
|
|
70
|
+
|
|
71
|
+
# Django stuff:
|
|
72
|
+
*.log
|
|
73
|
+
local_settings.py
|
|
74
|
+
|
|
75
|
+
# Flask stuff:
|
|
76
|
+
instance/
|
|
77
|
+
.webassets-cache
|
|
78
|
+
|
|
79
|
+
# Scrapy stuff:
|
|
80
|
+
.scrapy
|
|
81
|
+
|
|
82
|
+
# Sphinx documentation
|
|
83
|
+
docs/_build/
|
|
84
|
+
|
|
85
|
+
# PyBuilder
|
|
86
|
+
target/
|
|
87
|
+
|
|
88
|
+
# Jupyter Notebook
|
|
89
|
+
.ipynb_checkpoints
|
|
90
|
+
|
|
91
|
+
# pyenv
|
|
92
|
+
.python-version
|
|
93
|
+
|
|
94
|
+
# celery beat schedule file
|
|
95
|
+
celerybeat-schedule
|
|
96
|
+
|
|
97
|
+
# SageMath parsed files
|
|
98
|
+
*.sage.py
|
|
99
|
+
|
|
100
|
+
# dotenv
|
|
101
|
+
.env
|
|
102
|
+
|
|
103
|
+
# virtualenv
|
|
104
|
+
venv/
|
|
105
|
+
ENV/
|
|
106
|
+
|
|
107
|
+
# Spyder project settings
|
|
108
|
+
.spyderproject
|
|
109
|
+
.spyproject
|
|
110
|
+
|
|
111
|
+
# Rope project settings
|
|
112
|
+
.ropeproject
|
|
113
|
+
|
|
114
|
+
# mkdocs documentation
|
|
115
|
+
/site
|
|
116
|
+
|
|
117
|
+
# mypy
|
|
118
|
+
.mypy_cache/
|
|
119
|
+
|
|
120
|
+
.vscode
|
|
121
|
+
*.swp
|
|
122
|
+
|
|
123
|
+
# osx generated files
|
|
124
|
+
.DS_Store
|
|
125
|
+
.DS_Store?
|
|
126
|
+
.Trashes
|
|
127
|
+
ehthumbs.db
|
|
128
|
+
Thumbs.db
|
|
129
|
+
.idea
|
|
130
|
+
|
|
131
|
+
# pytest
|
|
132
|
+
.pytest_cache
|
|
133
|
+
|
|
134
|
+
# tools/trust-doc-nbs
|
|
135
|
+
docs_src/.last_checked
|
|
136
|
+
|
|
137
|
+
# symlinks to fastai
|
|
138
|
+
docs_src/fastai
|
|
139
|
+
tools/fastai
|
|
140
|
+
|
|
141
|
+
# link checker
|
|
142
|
+
checklink/cookies.txt
|
|
143
|
+
|
|
144
|
+
# .gitconfig is now autogenerated
|
|
145
|
+
.gitconfig
|
|
146
|
+
|
|
147
|
+
# Quarto installer
|
|
148
|
+
.deb
|
|
149
|
+
.pkg
|
|
150
|
+
|
|
151
|
+
# Quarto
|
|
152
|
+
.quarto
|
|
153
|
+
/.jupyter
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/gitleaks/gitleaks
|
|
3
|
+
rev: v8.16.3
|
|
4
|
+
hooks:
|
|
5
|
+
- id: gitleaks
|
|
6
|
+
- repo: https://github.com/jumanjihouse/pre-commit-hooks
|
|
7
|
+
rev: 3.0.0
|
|
8
|
+
hooks:
|
|
9
|
+
- id: shellcheck
|
|
10
|
+
- repo: https://github.com/pre-commit/mirrors-eslint
|
|
11
|
+
rev: v8.38.0
|
|
12
|
+
hooks:
|
|
13
|
+
- id: eslint
|
|
14
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
15
|
+
rev: v4.4.0
|
|
16
|
+
hooks:
|
|
17
|
+
- id: end-of-file-fixer
|
|
18
|
+
- id: trailing-whitespace
|
|
19
|
+
- repo: https://github.com/pylint-dev/pylint
|
|
20
|
+
rev: v2.17.2
|
|
21
|
+
hooks:
|
|
22
|
+
- id: pylint
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Development Guide
|
|
2
|
+
|
|
3
|
+
## Quick Commands
|
|
4
|
+
- `just install` - Setup dev environment
|
|
5
|
+
- `just test` - Run all tests
|
|
6
|
+
- `just test-fast` - Unit tests only
|
|
7
|
+
- `just test-integration` - Azure/Jira tests (needs SQU_CONFIG)
|
|
8
|
+
- `just lint` - Format and check code
|
|
9
|
+
- `just check` - Full quality check
|
|
10
|
+
- `just build` - Build package
|
|
11
|
+
|
|
12
|
+
## Project Structure
|
|
13
|
+
- **Package**: `src/nbdev_squ/` - Standard Python layout
|
|
14
|
+
- **Core modules**: api (SIEM queries), core (auth/caching), clients (external APIs)
|
|
15
|
+
- **Config**: Azure Key Vault via `SQU_CONFIG=keyvault/tenantid`
|
|
16
|
+
- **APIs**: Azure Sentinel, Runzero, Jira v3, AbuseIPDB, Tenable
|
|
17
|
+
|
|
18
|
+
## Development Standards
|
|
19
|
+
- Python 3.12+, ruff formatting, mypy type checking
|
|
20
|
+
- pytest with `@pytest.mark.integration` for external dependencies
|
|
21
|
+
- Import order: stdlib, third-party, local
|
|
22
|
+
- Use library solutions over custom implementations
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.4.0] - 2025-09-16
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- Ibis support for scalable data processing (`Fmt.ibis`)
|
|
7
|
+
- Modern uv-based package structure
|
|
8
|
+
- Integration test suite for Azure and Jira scenarios
|
|
9
|
+
- Jira v3 API support (transparent upgrade from v2)
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Migrated from nbdev to standard Python package
|
|
13
|
+
- Build system: uv, pytest, ruff, mypy with streamlined setup
|
|
14
|
+
- All API functions support pandas/ibis output formats
|
|
15
|
+
- Separated fast unit tests from integration tests
|
|
16
|
+
- Simplified Azure CLI extension handling
|
|
17
|
+
|
|
18
|
+
### Technical
|
|
19
|
+
- Zero breaking changes for existing users
|
|
20
|
+
- Dependencies: ibis-framework, duckdb, pip (for Azure CLI)
|
|
21
|
+
- Clean documentation and contributor-friendly setup
|
|
22
|
+
- Enhanced test coverage with comprehensive JQL testing
|
|
23
|
+
|
|
24
|
+
## [1.3.0] - Previous
|
|
25
|
+
Updated to include api clients and msticpy. Python 3.11 support.
|
|
26
|
+
|
|
27
|
+
|