graphql-armory 0.1.0.pre
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +26 -0
- data/LICENSE +21 -0
- data/MIGRATING.md +85 -0
- data/README.md +311 -0
- data/lib/graphql/armory/authorization/adapters/cancan.rb +92 -0
- data/lib/graphql/armory/authorization/adapters/null.rb +28 -0
- data/lib/graphql/armory/authorization/adapters/pundit.rb +83 -0
- data/lib/graphql/armory/authorization/adapters/substitute.rb +46 -0
- data/lib/graphql/armory/authorization/audit/command.rb +36 -0
- data/lib/graphql/armory/authorization/audit/report.rb +51 -0
- data/lib/graphql/armory/authorization/audit.rb +213 -0
- data/lib/graphql/armory/authorization/authorize.rb +68 -0
- data/lib/graphql/armory/authorization/configuration.rb +35 -0
- data/lib/graphql/armory/authorization/controls/actor.rb +15 -0
- data/lib/graphql/armory/authorization/controls/context.rb +29 -0
- data/lib/graphql/armory/authorization/controls/rule.rb +15 -0
- data/lib/graphql/armory/authorization/controls/subject.rb +15 -0
- data/lib/graphql/armory/authorization/errors.rb +29 -0
- data/lib/graphql/armory/authorization/integration/argument.rb +74 -0
- data/lib/graphql/armory/authorization/integration/base.rb +34 -0
- data/lib/graphql/armory/authorization/integration/field.rb +102 -0
- data/lib/graphql/armory/authorization/integration/find_by.rb +22 -0
- data/lib/graphql/armory/authorization/integration/object.rb +67 -0
- data/lib/graphql/armory/authorization/integration/resolver.rb +84 -0
- data/lib/graphql/armory/authorization/integration/schema.rb +60 -0
- data/lib/graphql/armory/authorization/integration.rb +104 -0
- data/lib/graphql/armory/authorization/memo.rb +35 -0
- data/lib/graphql/armory/authorization/rspec.rb +21 -0
- data/lib/graphql/armory/authorization/rule.rb +61 -0
- data/lib/graphql/armory/authorization/scope.rb +37 -0
- data/lib/graphql/armory/authorization/telemetry.rb +42 -0
- data/lib/graphql/armory/authorization.rb +41 -0
- data/lib/graphql/armory/version.rb +7 -0
- data/lib/graphql/armory.rb +13 -0
- data/lib/graphql-armory.rb +2 -0
- data/lib/tasks/graphql_armory.rake +11 -0
- metadata +107 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "graphql"
|
|
4
|
+
require "graphql/armory/version"
|
|
5
|
+
|
|
6
|
+
module GraphQL
|
|
7
|
+
# Open-source extensions for graphql-ruby, built on its public extension points.
|
|
8
|
+
module Armory
|
|
9
|
+
class Error < GraphQL::Error; end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
require "graphql/armory/authorization"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "graphql/armory"
|
|
4
|
+
|
|
5
|
+
namespace :graphql_armory do
|
|
6
|
+
desc "Lists every type, field and argument of a schema that no authorization rule covers (exit 1 if any)"
|
|
7
|
+
task :audit, [:schema] => (Rake::Task.task_defined?(:environment) ? [:environment] : []) do |_task, args|
|
|
8
|
+
status = GraphQL::Armory::Authorization::Audit::Command.new.(args[:schema])
|
|
9
|
+
exit(status) unless status.zero?
|
|
10
|
+
end
|
|
11
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: graphql-armory
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0.pre
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Israel
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-10-29 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: graphql
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.4'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '3'
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '2.4'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '3'
|
|
33
|
+
description: 'Open-source extensions for graphql-ruby built on its public extension
|
|
34
|
+
points. The first module is authorization: deny-by-default coverage, scoped lists
|
|
35
|
+
and connections, IDOR-safe lookups, mutations, interfaces and unions, visibility
|
|
36
|
+
driven by the policy, and a schema audit for CI.'
|
|
37
|
+
email:
|
|
38
|
+
executables: []
|
|
39
|
+
extensions: []
|
|
40
|
+
extra_rdoc_files: []
|
|
41
|
+
files:
|
|
42
|
+
- CHANGELOG.md
|
|
43
|
+
- LICENSE
|
|
44
|
+
- MIGRATING.md
|
|
45
|
+
- README.md
|
|
46
|
+
- lib/graphql-armory.rb
|
|
47
|
+
- lib/graphql/armory.rb
|
|
48
|
+
- lib/graphql/armory/authorization.rb
|
|
49
|
+
- lib/graphql/armory/authorization/adapters/cancan.rb
|
|
50
|
+
- lib/graphql/armory/authorization/adapters/null.rb
|
|
51
|
+
- lib/graphql/armory/authorization/adapters/pundit.rb
|
|
52
|
+
- lib/graphql/armory/authorization/adapters/substitute.rb
|
|
53
|
+
- lib/graphql/armory/authorization/audit.rb
|
|
54
|
+
- lib/graphql/armory/authorization/audit/command.rb
|
|
55
|
+
- lib/graphql/armory/authorization/audit/report.rb
|
|
56
|
+
- lib/graphql/armory/authorization/authorize.rb
|
|
57
|
+
- lib/graphql/armory/authorization/configuration.rb
|
|
58
|
+
- lib/graphql/armory/authorization/controls/actor.rb
|
|
59
|
+
- lib/graphql/armory/authorization/controls/context.rb
|
|
60
|
+
- lib/graphql/armory/authorization/controls/rule.rb
|
|
61
|
+
- lib/graphql/armory/authorization/controls/subject.rb
|
|
62
|
+
- lib/graphql/armory/authorization/errors.rb
|
|
63
|
+
- lib/graphql/armory/authorization/integration.rb
|
|
64
|
+
- lib/graphql/armory/authorization/integration/argument.rb
|
|
65
|
+
- lib/graphql/armory/authorization/integration/base.rb
|
|
66
|
+
- lib/graphql/armory/authorization/integration/field.rb
|
|
67
|
+
- lib/graphql/armory/authorization/integration/find_by.rb
|
|
68
|
+
- lib/graphql/armory/authorization/integration/object.rb
|
|
69
|
+
- lib/graphql/armory/authorization/integration/resolver.rb
|
|
70
|
+
- lib/graphql/armory/authorization/integration/schema.rb
|
|
71
|
+
- lib/graphql/armory/authorization/memo.rb
|
|
72
|
+
- lib/graphql/armory/authorization/rspec.rb
|
|
73
|
+
- lib/graphql/armory/authorization/rule.rb
|
|
74
|
+
- lib/graphql/armory/authorization/scope.rb
|
|
75
|
+
- lib/graphql/armory/authorization/telemetry.rb
|
|
76
|
+
- lib/graphql/armory/version.rb
|
|
77
|
+
- lib/tasks/graphql_armory.rake
|
|
78
|
+
homepage: https://github.com/israelb/graphql-armory
|
|
79
|
+
licenses:
|
|
80
|
+
- MIT
|
|
81
|
+
metadata:
|
|
82
|
+
homepage_uri: https://github.com/israelb/graphql-armory
|
|
83
|
+
source_code_uri: https://github.com/israelb/graphql-armory
|
|
84
|
+
changelog_uri: https://github.com/israelb/graphql-armory/blob/main/CHANGELOG.md
|
|
85
|
+
bug_tracker_uri: https://github.com/israelb/graphql-armory/issues
|
|
86
|
+
rubygems_mfa_required: 'true'
|
|
87
|
+
post_install_message:
|
|
88
|
+
rdoc_options: []
|
|
89
|
+
require_paths:
|
|
90
|
+
- lib
|
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '3.1'
|
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
|
+
requirements:
|
|
98
|
+
- - ">"
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: 1.3.1
|
|
101
|
+
requirements: []
|
|
102
|
+
rubygems_version: 3.4.19
|
|
103
|
+
signing_key:
|
|
104
|
+
specification_version: 4
|
|
105
|
+
summary: 'Authorization for graphql-ruby: Pundit and CanCanCan, deny-by-default, with
|
|
106
|
+
a schema audit.'
|
|
107
|
+
test_files: []
|