You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							2.0 KiB
						
					
					
				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:
- Remove the build tag: Remove the //go:build ignoreand// +build ignorelines fromexamples.go
- Use during development: The examples are available during development but not in production builds
- 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
// 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.