Add client/ setup and plan

This commit is contained in:
Michael Hohn
2024-07-09 10:37:41 -07:00
committed by =Michael Hohn
parent e3f4d9f012
commit 8d80272922
4 changed files with 177 additions and 0 deletions

1
.gitignore vendored
View File

@@ -43,3 +43,4 @@ go.work.sum
.env .env
/artifactstore-data/.minio.sys /artifactstore-data/.minio.sys
/qldbminio/qldb /qldbminio/qldb
.ipynb_checkpoints/

View File

@@ -7,6 +7,40 @@ TODO Style notes
- Dynamic behaviour must be explicit - Dynamic behaviour must be explicit
## Client CodeQL Database Selector
Separate from the server's downloading of databases, a client-side interface is needed to generate the `databases.json` file. This
1. must be usable from the shell
2. must be interactive (Python, Jupyter)
3. is session based to allow iterations on selection / narrowing
4. must be queryable. There is no need to reinvent sql / dataframes
Python with dataframes is ideal for this.
- Set up the virtual environment and install tools
cd ~/work-gh/mrva/mrvacommander/client
python3.11 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install jupyterlab pandas ipython
pip install lckr-jupyterlab-variableinspector
- Run jupyterlab
cd ~/work-gh/mrva/mrvacommander/client
source venv/bin/activate
jupyter lab &
The variable inspector is a right-click on an open console or notebook.
The `jupyter` command produces output including
Jupyter Server 2.14.1 is running at:
http://127.0.0.1:8888/lab?token=4c91308819786fe00a33b76e60f3321840283486457516a1
Use this to connect multiple front ends
## Reverse proxy ## Reverse proxy
For testing, replay flows using mitmweb. This is faster and simpler than using For testing, replay flows using mitmweb. This is faster and simpler than using
gh-mrva or the VS Code plugin. gh-mrva or the VS Code plugin.

48
client/Plan.ipynb Normal file
View File

@@ -0,0 +1,48 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "e1c3b239-d45e-43f6-9d2d-64ee46e75e61",
"metadata": {},
"source": [
"1. Find available DBs\n",
"2. Save list\n",
"3. Refine selection\n",
"4. Save selection\n",
" 1. Generate `databases.json` for use in vs code extension\n",
" 2. Generate `list-databases.json` for use by gh-mrva client\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "042947ea-8514-4318-a768-7826e494dd43",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd, numpy as np"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

94
client/requirements.txt Normal file
View File

@@ -0,0 +1,94 @@
anyio==4.4.0
appnope==0.1.4
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
attrs==23.2.0
Babel==2.15.0
beautifulsoup4==4.12.3
bleach==6.1.0
certifi==2024.7.4
cffi==1.16.0
charset-normalizer==3.3.2
comm==0.2.2
debugpy==1.8.2
decorator==5.1.1
defusedxml==0.7.1
executing==2.0.1
fastjsonschema==2.20.0
fqdn==1.5.1
h11==0.14.0
httpcore==1.0.5
httpx==0.27.0
idna==3.7
ipykernel==6.29.5
ipython==8.26.0
isoduration==20.11.0
jedi==0.19.1
Jinja2==3.1.4
json5==0.9.25
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2023.12.1
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.2
jupyter_core==5.7.2
jupyter_server==2.14.1
jupyter_server_terminals==0.5.3
jupyterlab==4.2.3
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.2
MarkupSafe==2.1.5
matplotlib-inline==0.1.7
mistune==3.0.2
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
notebook_shim==0.2.4
numpy==2.0.0
overrides==7.7.0
packaging==24.1
pandas==2.2.2
pandocfilters==1.5.1
parso==0.8.4
pexpect==4.9.0
platformdirs==4.2.2
prometheus_client==0.20.0
prompt_toolkit==3.0.47
psutil==6.0.0
ptyprocess==0.7.0
pure-eval==0.2.2
pycparser==2.22
Pygments==2.18.0
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
pytz==2024.1
PyYAML==6.0.1
pyzmq==26.0.3
referencing==0.35.1
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.19.0
Send2Trash==1.8.3
six==1.16.0
sniffio==1.3.1
soupsieve==2.5
stack-data==0.6.3
terminado==0.18.1
tinycss2==1.3.0
tornado==6.4.1
traitlets==5.14.3
types-python-dateutil==2.9.0.20240316
typing_extensions==4.12.2
tzdata==2024.1
uri-template==1.3.0
urllib3==2.2.2
wcwidth==0.2.13
webcolors==24.6.0
webencodings==0.5.1
websocket-client==1.8.0