Prasenjit Roy
07/29/2025, 2:07 PMKirk Daries
07/31/2025, 12:46 PMAlonahmias
07/31/2025, 3:56 PMKirk Daries
07/31/2025, 5:55 PMpermit(
principal in Role::"Editor",
action in [
Action::"document:read",
Action::"document:write",
Action::"document:delete"
],
resource in ResourceType::"document"
);
permit(
principal in Role::"LimitedEditor",
action in [
Action::"document:read",
Action::"document:write",
],
resource in ResourceType::"document"
);
Start up the stack.
You'll notice the cedar agent returns empty: http://localhost:8180/v1/policies (cedar agent)
Confirm data is present at: http://localhost:7002/policy (opal server)Sourabh Krishna
08/01/2025, 1:03 AMDai Zhang
08/03/2025, 7:03 AMopal-client publish-data-update $token --src-url <http://mybillingserver.com/users> --src-config '{"headers":{"authorization":"bearer secret-token"}}'
it only needs a single field named src-url to determine which datasource should be updates.
1. however, when using posgres table as datasource, this url would like to be "url": "<postgresql://postgres@example_db:5432/postgres>". Does that means I need to put each data source into different database, in a way like 1 table in 1 database mode? It sounds wired.
2. I checked another option to trigger data update. i.e. using OPAL Server REST API. However, this method seems to be wrong when only putting url in request payload like curl ... --header 'Content-Type: application/json' -d '{"entries":[{"url":"<postgresql://postgres@example_db:5432/postgres>"}]}'. The opal server won't fill the blanks of other field but remain them as empty which cause opal-client failed to fetch data.
3. then i know maybe I should put the whole datasource config entry into the payload. it sounds wired too. Does that mean I should hard-code all the datasouce configuration into my client.
Is there some id or other workflow, e..g I first go somewhere to get the full datasource configure then post the data update. Really confusing, thanks a lot!Dai Zhang
08/04/2025, 3:56 PM2025-08-04T15:45:25.978352+0000 | ddtrace.internal.writer.writer |ERROR | failed to send, dropping 1 traces to intake at <http://localhost:8126/v0.5/traces> after 3 retriesJack Muller
08/18/2025, 8:22 PM김수현
09/07/2025, 6:09 AMbdjgs
09/10/2025, 7:32 AMPrasenjit Roy
09/12/2025, 6:36 AMAlex Shuraits
09/18/2025, 8:22 AMNishanth Mathew Joy
09/22/2025, 1:28 PMShyamalan Chemmery
09/24/2025, 7:33 AMNishanth Mathew Joy
09/24/2025, 7:59 PMNishanth Mathew Joy
09/25/2025, 4:07 PMNishanth Mathew Joy
09/26/2025, 12:16 PMMaxime B.
10/01/2025, 1:23 PMChristopher McMahon
10/03/2025, 6:54 AMChristopher McMahon
10/03/2025, 6:57 AMChristopher McMahon
10/07/2025, 6:22 AMNishanth Mathew Joy
10/08/2025, 2:12 PMPrasenjit Roy
10/14/2025, 10:49 AMMichał Wójcik
10/15/2025, 9:52 AM2025-10-15T09:25:08.891982+0000 | opal_client.policy.updater | INFO | Received policy update: topic=d7c2f5d674f54f82a21b401cf5190d32:policy:., message={'old_policy_hash': '9ed9fb1d2c4defae9d020e36f3c8510aa2930464', 'new_policy_hash': '7a919fe931c2403e183b134187a28abd8a8878d4', 'changed_directories': ['.', 'permit', 'permit/generated', 'permit/generated/conditionset']}
2025-10-15T09:25:08.892246+0000 | opal_client.policy.updater | INFO | Refetching policy code (delta bundle), base hash: '9ed9fb1d2c4defae9d020e36f3c8510aa2930464'
2025-10-15T09:25:08.892655+0000 | opal_client.policy.fetcher | INFO | Fetching policy bundle from <https://opal-v2.permit.io/scopes/d7c2f5d674f54f82a21b401cf5190d32/policy>
2025-10-15T09:25:10.461838+0000 | uvicorn.protocols.http.httptools_impl | INFO | 127.0.0.1:37394 - "GET /healthy HTTP/1.1" 200
2025-10-15T09:25:11.840135+0000 | opal_client.policy.fetcher | INFO | Fetched valid bundle, id: 7a919fe931c2403e183b134187a28abd8a8878d4
2025-10-15T09:25:11.841801+0000 | opal_client.policy.updater | INFO | got policy bundle (delta): '9ed9fb1d2c4defae9d020e36f3c8510aa2930464' -> '7a919fe931c2403e183b134187a28abd8a8878d4', manifest: ['permit/generated/conditionset/Large_5fquantity.rego'], deleted: None
2025-10-15T09:25:11.847489+0000 | opal_client.engine.logger | INFO | Received request. PUT /v1/policies/permit/generated/conditionset/Large_5fquantity.rego
2025-10-15T09:25:11.994635+0000 | opal_client.engine.logger | INFO | Sent response. PUT /v1/policies/permit/generated/conditionset/Large_5fquantity.rego -> 200
Any thoughts? Screenshot from activity logs for the condition change (there is my local time so 9:20 utc)JT Wheeler
10/16/2025, 3:24 PMHttpFetchProvider from an API. Is there a working example of using the HttpFetchProvider for a POST request that includes a request body? I've tried a number of things, but every time I try to include a request body, it appears the HttpFetcherProvider doesn't even attempt to make a call out to the configured endpoint. For example, I have this set in OPAL_DATA_CONFIG_SOURCES in the permitio/opal-server:latest container I have running locally:
{
"config": {
"entries": [
{
"url": "<http://myapi:8080/v1/path>",
"config": {
"fetcher": "HttpFetchProvider",
"method": "post",
"data": {
"blah": "blah"
}
},
"topics": [
"blah"
],
"dst_path": "blah"
}
]
}
}
This results in a aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url='<http://myapi:8080/v1/path> in the permitio/opal-client-standalone:latest container I have running locally, and with a ERROR | Timeout while fetching url: <http://openfga:8080/stores/01K7MTJYKRN6V5TQ1WT8D83QDQ/list-user> error. The logs from the app running at <http://myapi:8080> don't seem to indicate that the request made it to my app. However, if I remove config.data from the configuration, the logs from my app do indicate the request was received. My app responds with a 400 in this case because the request body is required, but it at least proves the request has been received.
I will admit it is confusing that the OPAL client indicates a 400 was received from the API when config.data is included but, my app logs don't indicate the request was received.Elijah Bassey
10/20/2025, 6:26 PM2025-10-20T18:21:45.449442+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | RPC Connection failed - [Errno -5] Name has no usable address
2025-10-20T18:21:46.391887+0000 | opal_client.policy_store.opa_client |WARNING | OPA client health: False (policy: False, data: False)
2025-10-20T18:21:46.392485+0000 | uvicorn.protocols.http.httptools_impl | INFO | 127.0.0.1:45740 - "GET /healthy HTTP/1.1" 503
2025-10-20T18:21:47.785723+0000 | opal_client.policy_store.opa_client |WARNING | OPA client health: False (policy: False, data: False)
2025-10-20T18:21:47.786254+0000 | uvicorn.protocols.http.httptools_impl | INFO | 127.0.0.1:45744 - "GET /healthy HTTP/1.1" 503
[2025-10-20T18:21:47Z INFO pdp_server::api::health::handlers] Health check failed: horizon: Horizon returned status 503 Service Unavailable
2025-10-20T18:21:47.786688+0000 | opal_client.engine.logger | INFO | Received request. GET /health
2025-10-20T18:21:47.787123+0000 | opal_client.engine.logger | INFO | Sent response. GET /health -> 200
2025-10-20T18:21:51.391099+0000 | opal_client.policy_store.opa_client |WARNING | OPA client health: False (policy: False, data: False)
2025-10-20T18:21:51.391510+0000 | uvicorn.protocols.http.httptools_impl | INFO | 127.0.0.1:45740 - "GET /healthy HTTP/1.1" 503
2025-10-20T18:21:52.716743+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | Trying server - <wss://opal.permit.io/ws>
2025-10-20T18:21:52.736808+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | RPC Connection failed - [Errno -5] Name has no usable address
2025-10-20T18:21:53.071268+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | Trying server - <wss://opal.permit.io/ws>
2025-10-20T18:21:53.097005+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | RPC Connection failed - [Errno -5] Name has no usable address
2025-10-20T18:21:54.619022+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | Trying server - <wss://opal.permit.io/ws>
2025-10-20T18:21:54.640207+0000 | fastapi_websocket_rpc.websocket_rpc_c...| INFO | RPC Connection failed - [Errno -5] Name has no usable address
2025-10-20T18:21:55.982693+0000 | opal_client.policy_store.opa_client |WARNING | OPA client health: False (policy: False, data: False)
2025-10-20T18:21:55.983169+0000 | uvicorn.protocols.http.httptools_impl | INFO | 127.0.0.1:51108 - "GET /healthy HTTP/1.1" 503
[2025-10-20T18:21:55Z INFO pdp_server::api::health::handlers] Health check failed: horizon: Horizon returned status 503 Service Unavailablekevin
10/22/2025, 8:18 AMItamar Shpak
10/22/2025, 11:52 AMDan
10/22/2025, 1:59 PMkevin
10/23/2025, 8:05 AM