mirror of
https://github.com/chrislusf/seaweedfs
synced 2025-07-26 21:42:48 +02:00
54 lines
No EOL
2 KiB
Markdown
54 lines
No EOL
2 KiB
Markdown
# Policy Engine Examples
|
|
|
|
This document contains examples of how to use the SeaweedFS Policy Engine.
|
|
|
|
## Overview
|
|
|
|
The examples in `examples.go` demonstrate various policy configurations and usage patterns. The examples file is excluded from production builds using build tags to reduce binary size.
|
|
|
|
## To Use Examples
|
|
|
|
If you need to use the examples during development or testing, you can:
|
|
|
|
1. **Remove the build tag**: Remove the `//go:build ignore` and `// +build ignore` lines from `examples.go`
|
|
2. **Use during development**: The examples are available during development but not in production builds
|
|
3. **Copy specific examples**: Copy the JSON examples you need into your own code
|
|
|
|
## Example Categories
|
|
|
|
The examples file includes:
|
|
|
|
- **Legacy Identity Format**: Examples of existing identities.json format
|
|
- **Policy Documents**: Various AWS S3-compatible policy examples
|
|
- **Condition Examples**: Complex condition-based policies
|
|
- **Migration Examples**: How to migrate from legacy to policy-based IAM
|
|
- **Integration Examples**: How to integrate with existing systems
|
|
|
|
## Usage Functions
|
|
|
|
The examples file provides helper functions:
|
|
|
|
- `GetAllExamples()`: Returns all example policies
|
|
- `ValidateExamplePolicies()`: Validates all examples
|
|
- `GetExamplePolicy(name)`: Gets a specific example
|
|
- `CreateExamplePolicyDocument(name)`: Creates a policy document
|
|
- `PrintExamplePolicyPretty(name)`: Pretty-prints an example
|
|
- `ExampleUsage()`: Shows basic usage patterns
|
|
- `ExampleLegacyIntegration()`: Shows legacy integration
|
|
- `ExampleConditions()`: Shows condition usage
|
|
- `ExampleMigrationStrategy()`: Shows migration approach
|
|
|
|
## To Enable Examples in Development
|
|
|
|
```go
|
|
// Remove build tags from examples.go, then:
|
|
import "github.com/seaweedfs/seaweedfs/weed/s3api/policy_engine"
|
|
|
|
// Use examples
|
|
examples := policy_engine.GetAllExamples()
|
|
policy, err := policy_engine.GetExamplePolicy("read-only-user")
|
|
```
|
|
|
|
## Note
|
|
|
|
The examples are excluded from production builds to keep binary size minimal. They are available for development and testing purposes only. |