sourcecode 1.36.3__py3-none-any.whl → 1.36.4__py3-none-any.whl

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.
sourcecode/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """sourcecode — Deterministic codebase context maps for AI coding agents."""
2
2
 
3
- __version__ = "1.36.3"
3
+ __version__ = "1.36.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.36.3
3
+ Version: 1.36.4
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  License-File: LICENSE
6
6
  Keywords: agents,ai,codebase,context,developer-tools,llm
@@ -40,8 +40,8 @@ Description-Content-Type: text/markdown
40
40
 
41
41
  **Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
42
42
 
43
- ![Version](https://img.shields.io/badge/version-1.36.1-blue)
44
- ![Python](https://img.shields.io/badge/python-3.10%2B-green)
43
+ ![Version](https://img.shields.io/badge/version-1.36.4-blue)
44
+ ![Python](https://img.shields.io/badge/python-3.9%2B-green)
45
45
 
46
46
  ---
47
47
 
@@ -114,7 +114,7 @@ pipx install sourcecode
114
114
 
115
115
  ```bash
116
116
  sourcecode version
117
- # sourcecode 1.36.1
117
+ # sourcecode 1.36.4
118
118
  ```
119
119
 
120
120
  ---
@@ -283,7 +283,7 @@ Specifically:
283
283
  - Architecture pattern detection best for Spring MVC layered apps; SPI/plugin architectures (e.g. Quarkus extension model) may be misclassified
284
284
  - Endpoint recall for JAX-RS subresource locator pattern is ~65%
285
285
  - `impact` on implementation classes (e.g. `OrderServiceImpl`) returns 0 callers in Spring Boot — callers inject the interface via `@Autowired`. Always target the interface. When `direct_callers: []` with `confidence_level: high` for a `@Service` class, re-query the interface.
286
- - `no_security_signal` on endpoints means no method-level annotations found — does **not** mean the endpoint is unsecured. Projects using Spring Security filter chains show 100% `no_security_signal` even when fully secured.
286
+ - `no_security_signal` on endpoints means no recognized method-level annotation found — does **not** mean the endpoint is unsecured. Projects using Spring Security filter chains show 100% `no_security_signal` even when fully secured. Projects using a custom authorization annotation can teach the scanner via [`sourcecode.config.json`](#sourcecodeconfigjson-repo-root).
287
287
  - `spring-audit` and `impact-chain` are **Java/Spring only** — non-Java repos return `spring_detected: false`
288
288
  - Event topology via `--type events` does not resolve Kafka/RabbitMQ/Redis message routes — only Spring ApplicationEvent and `@EventListener` chains
289
289
  - Self-invocation TX bypass (calling `@Transactional` method from the same class without going through the proxy) is not detected
@@ -411,6 +411,8 @@ Detects structural Spring anomalies that survive code review and tests, but caus
411
411
 
412
412
  Returns structured findings with `severity`, `confidence`, `symbol`, `source_file`, `evidence`, `explanation`, and `fix_hint`. JAVA/SPRING ONLY.
413
413
 
414
+ Endpoints guarded by a project-specific authorization annotation are treated as secured (not flagged `SEC-001`) once declared in [`sourcecode.config.json`](#sourcecodeconfigjson-repo-root).
415
+
414
416
  ### `impact-chain` — systemic blast radius with TX/SEC enrichment [free]
415
417
 
416
418
  ```bash
@@ -716,3 +718,29 @@ Or: `export SOURCECODE_TELEMETRY=0`
716
718
  ```bash
717
719
  sourcecode config # show version, config file path, telemetry status
718
720
  ```
721
+
722
+ ### `sourcecode.config.json` (repo root)
723
+
724
+ Optional, per-repo. Loaded from the root of the repo being analyzed. Absent or
725
+ malformed config is ignored — the tool behaves exactly as without it.
726
+
727
+ **Custom security annotations.** Teach `endpoints`, `spring-audit`, and `explain`
728
+ about project-specific authorization annotations (otherwise reported as
729
+ `policy: "none_detected"`):
730
+
731
+ ```json
732
+ {
733
+ "customSecurityAnnotations": [
734
+ {
735
+ "fullyQualifiedName": "com.example.security.M3FiltroSeguridad",
736
+ "shortName": "M3FiltroSeguridad",
737
+ "resourceParam": "nombreRecurso",
738
+ "levelParam": "nivelRequerido"
739
+ }
740
+ ]
741
+ }
742
+ ```
743
+
744
+ `resourceParam` / `levelParam` are optional and name the annotation attributes to
745
+ surface as `resourceName` / `requiredLevel`. Matching endpoints report
746
+ `policy: "custom"` and drop out of the `no_security_signal` count.
@@ -1,4 +1,4 @@
1
- sourcecode/__init__.py,sha256=R2EBl2n5HISPyZl0TZ5WWj834XZILTkphQ_J6rBP3zA,103
1
+ sourcecode/__init__.py,sha256=VaLp6STbtbdgz6lEh8T1SQ9wlrYaZOhGX5EsxDkin2c,103
2
2
  sourcecode/adaptive_scanner.py,sha256=XffluXKzJUXrMtjEiAOnSNPZnztdIcts17T9ouHeID0,10521
3
3
  sourcecode/architecture_analyzer.py,sha256=liCwQmLgb5vplohy8arjYxs_HOIv5C9MjLh_gY6bc5Q,44115
4
4
  sourcecode/architecture_summary.py,sha256=z34_6v7cSwy98cof2UVciGho7SCrZ93tiqMmq5WNzRQ,20405
@@ -98,8 +98,8 @@ sourcecode/telemetry/consent.py,sha256=wLMvGNJeSSyZoNkQXpoUioY6mMv4Qdvuw7S9jAEWn
98
98
  sourcecode/telemetry/events.py,sha256=LtzYfaX9Ilckj5PTvAcTpDa9mLqDsYPDUiDkRa58piY,2580
99
99
  sourcecode/telemetry/filters.py,sha256=NHa5T-6DaZduQPFuC34jOqHWQgSizM-Ygq8aZ4j19ng,5834
100
100
  sourcecode/telemetry/transport.py,sha256=4gGHsq0WeY9VywEZXA3vUxykfiYnw9uuqfjAAec7F8o,1681
101
- sourcecode-1.36.3.dist-info/METADATA,sha256=QGvZo4o1EjzCa6zRqOWBZQs7y9RjI1AEsVBrVc4BNvw,31056
102
- sourcecode-1.36.3.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
103
- sourcecode-1.36.3.dist-info/entry_points.txt,sha256=ex3F9rmbXeyDIoFQHtkEqTsKSaJow8F0LrVu8XfIktQ,57
104
- sourcecode-1.36.3.dist-info/licenses/LICENSE,sha256=7DdHrU9Z_3e7dSvq4ISijZNjnuHo5NIHNiHDouMQ9JU,10491
105
- sourcecode-1.36.3.dist-info/RECORD,,
101
+ sourcecode-1.36.4.dist-info/METADATA,sha256=cvBsZ2SCRYW3ObJswm0cwyqc54S36u_Y3V6VoVljSQ4,32243
102
+ sourcecode-1.36.4.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
103
+ sourcecode-1.36.4.dist-info/entry_points.txt,sha256=ex3F9rmbXeyDIoFQHtkEqTsKSaJow8F0LrVu8XfIktQ,57
104
+ sourcecode-1.36.4.dist-info/licenses/LICENSE,sha256=7DdHrU9Z_3e7dSvq4ISijZNjnuHo5NIHNiHDouMQ9JU,10491
105
+ sourcecode-1.36.4.dist-info/RECORD,,