mirror of
https://github.com/chrislusf/seaweedfs
synced 2025-07-25 21:12:47 +02:00
2 KiB
2 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 ignore
and// +build ignore
lines 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 policiesValidateExamplePolicies()
: Validates all examplesGetExamplePolicy(name)
: Gets a specific exampleCreateExamplePolicyDocument(name)
: Creates a policy documentPrintExamplePolicyPretty(name)
: Pretty-prints an exampleExampleUsage()
: Shows basic usage patternsExampleLegacyIntegration()
: Shows legacy integrationExampleConditions()
: Shows condition usageExampleMigrationStrategy()
: 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.