feat(apisix): add Cloudron package
- Implements Apache APISIX packaging for Cloudron platform. - Includes Dockerfile, CloudronManifest.json, and start.sh. - Configured to use Cloudron's etcd addon. 🤖 Generated with Gemini CLI Co-Authored-By: Gemini <noreply@google.com>
This commit is contained in:
30
CloudronPackages/APISIX/apisix-source/ci/pod/opa/data.json
Normal file
30
CloudronPackages/APISIX/apisix-source/ci/pod/opa/data.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"users": {
|
||||
"alice": {
|
||||
"headers": {
|
||||
"Location": "http://example.com/auth"
|
||||
},
|
||||
"status_code": 302
|
||||
},
|
||||
"bob": {
|
||||
"headers": {
|
||||
"test": "abcd",
|
||||
"abcd": "test"
|
||||
}
|
||||
},
|
||||
"carla": {
|
||||
"reason": "Give you a string reason"
|
||||
},
|
||||
"dylon": {
|
||||
"reason": {
|
||||
"code": 40001,
|
||||
"desc": "Give you a object reason"
|
||||
}
|
||||
},
|
||||
"elisa": {
|
||||
"reason": {
|
||||
"info": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
20
CloudronPackages/APISIX/apisix-source/ci/pod/opa/echo.rego
Normal file
20
CloudronPackages/APISIX/apisix-source/ci/pod/opa/echo.rego
Normal file
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
package echo
|
||||
|
||||
allow = false
|
||||
reason = input
|
@@ -0,0 +1,55 @@
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
package example
|
||||
|
||||
import input.request
|
||||
import data.users
|
||||
|
||||
default allow = false
|
||||
|
||||
allow {
|
||||
request.headers["test-header"] == "only-for-test"
|
||||
request.method == "GET"
|
||||
startswith(request.path, "/hello")
|
||||
request.query["test"] != "abcd"
|
||||
request.query["user"]
|
||||
}
|
||||
|
||||
allow {
|
||||
request.method == "GET"
|
||||
startswith(request.path, "/echo")
|
||||
}
|
||||
|
||||
reason = users[request.query["user"]].reason {
|
||||
not allow
|
||||
request.query["user"]
|
||||
}
|
||||
|
||||
headers = users[request.query["user"]].headers {
|
||||
not allow
|
||||
request.query["user"]
|
||||
}
|
||||
|
||||
headers = {"user": request.query["user"]} {
|
||||
allow
|
||||
request.query["user"]
|
||||
}
|
||||
|
||||
status_code = users[request.query["user"]].status_code {
|
||||
not allow
|
||||
request.query["user"]
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
package with_route
|
||||
default allow = false
|
||||
|
||||
allow {
|
||||
input.route.name == "valid"
|
||||
}
|
||||
|
||||
status_code = 403 {not allow}
|
Reference in New Issue
Block a user