Skip to content

Commit e7ecdd7

Browse files
l46kokcopybara-github
authored andcommitted
Open source the CEL formal verification framework
PiperOrigin-RevId: 945772608
1 parent 3ca90e1 commit e7ecdd7

51 files changed

Lines changed: 10078 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/cross_artifact_dependencies_check.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ TARGETS=(
2222
"//publish:cel_runtime"
2323
"//publish:cel_protobuf"
2424
"//publish:cel_v1alpha1"
25+
"//publish:cel_verifier"
2526
)
2627

2728
echo "------------------------------------------------"

MODULE.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ maven.install(
9898
"org.jspecify:jspecify:1.0.0",
9999
"org.threeten:threeten-extra:1.8.0",
100100
"org.yaml:snakeyaml:2.5",
101+
"tools.aqua:z3-turnkey:4.14.1",
101102
],
102103
repositories = [
103104
"https://maven.google.com",

publish/BUILD.bazel

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,18 @@ BUNDLE_TARGETS = [
130130

131131
CEL_MISC_TARGETS = BUNDLE_TARGETS + EXTENSION_TARGETS + OPTIMIZER_TARGETS + VALIDATOR_TARGETS + POLICY_COMPILER_TARGETS
132132

133+
# keep sorted
134+
VERIFIER_TARGETS = [
135+
"//verifier/src/main/java/dev/cel/verifier",
136+
"//verifier/src/main/java/dev/cel/verifier:policy_verifier",
137+
"//verifier/src/main/java/dev/cel/verifier:policy_verifier_factory",
138+
"//verifier/src/main/java/dev/cel/verifier:policy_verifier_impl",
139+
"//verifier/src/main/java/dev/cel/verifier:type_system",
140+
"//verifier/src/main/java/dev/cel/verifier:verifier_factory",
141+
"//verifier/src/main/java/dev/cel/verifier:z3_impl",
142+
"//verifier/src/main/java/dev/cel/verifier/axioms",
143+
]
144+
133145
# Excluded from the JAR as their source of truth is elsewhere
134146
EXCLUDED_TARGETS = [
135147
"@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto",
@@ -316,3 +328,24 @@ java_export(
316328
pom_template = ":cel_runtime_android_pom",
317329
exports = LITE_RUNTIME_TARGETS,
318330
)
331+
332+
pom_file(
333+
name = "cel_verifier_pom",
334+
substitutions = {
335+
"CEL_VERSION": CEL_VERSION,
336+
"CEL_ARTIFACT_ID": "verifier",
337+
"PACKAGE_NAME": "CEL Java Verifier",
338+
"PACKAGE_DESC": "Formal verification tools for Common Expression Language for Java.",
339+
},
340+
targets = VERIFIER_TARGETS,
341+
template_file = "pom_template.xml",
342+
)
343+
344+
java_export(
345+
name = "cel_verifier",
346+
deploy_env = EXCLUDED_TARGETS,
347+
javadocopts = JAVA_DOC_OPTIONS,
348+
maven_coordinates = "dev.cel:verifier:%s" % CEL_VERSION,
349+
pom_template = ":cel_verifier_pom",
350+
exports = VERIFIER_TARGETS + [":cel"],
351+
)

verifier/BUILD.bazel

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
load("@rules_java//java:defs.bzl", "java_library")
2+
3+
package(
4+
default_applicable_licenses = ["//:license"],
5+
default_visibility = ["//:internal"],
6+
)
7+
8+
java_library(
9+
name = "verifier",
10+
exports = ["//verifier/src/main/java/dev/cel/verifier"],
11+
)
12+
13+
java_library(
14+
name = "policy_verifier",
15+
exports = ["//verifier/src/main/java/dev/cel/verifier:policy_verifier"],
16+
)
17+
18+
java_library(
19+
name = "policy_verifier_factory",
20+
exports = ["//verifier/src/main/java/dev/cel/verifier:policy_verifier_factory"],
21+
)
22+
23+
java_library(
24+
name = "verifier_factory",
25+
compatible_with = [],
26+
exports = ["//verifier/src/main/java/dev/cel/verifier:verifier_factory"],
27+
)
28+
29+
java_library(
30+
name = "type_system",
31+
compatible_with = [],
32+
visibility = ["//:internal"],
33+
exports = ["//verifier/src/main/java/dev/cel/verifier:type_system"],
34+
)
35+
36+
java_library(
37+
name = "z3_impl",
38+
compatible_with = [],
39+
visibility = ["//:internal"],
40+
exports = ["//verifier/src/main/java/dev/cel/verifier:z3_impl"],
41+
)

0 commit comments

Comments
 (0)