home.social

Search

48 results for “bmariusz”

  1. Day 8
    TL;DR: Yesterday I took a break. Today I’m back – and permissions are under control :)
    Spent the day designing a fine-grained permission model.
    I now support 96 distinct permissions across 8 modules, 4 CRUD operations, and 3 scopes: self, group, global.
    Three system roles bind these into meaningful sets:
    admin: full global access (32 permissions)
    supervisor: read self + full group scope (32)
    employee: read/update self only (16)

    That's 80 role-permission bindings total. Uff.

    write.as/bmariusz/designing-a-

    #sql #Microservices #monorepo #rbac #codingdays #programming #accessManagement

  2. Day 8
    TL;DR: Yesterday I took a break. Today I’m back – and permissions are under control :)
    Spent the day designing a fine-grained permission model.
    I now support 96 distinct permissions across 8 modules, 4 CRUD operations, and 3 scopes: self, group, global.
    Three system roles bind these into meaningful sets:
    admin: full global access (32 permissions)
    supervisor: read self + full group scope (32)
    employee: read/update self only (16)

    That's 80 role-permission bindings total. Uff.

    write.as/bmariusz/designing-a-

    #sql #Microservices #monorepo #rbac #codingdays #programming #accessManagement

  3. Day 8
    TL;DR: Yesterday I took a break. Today I’m back – and permissions are under control :)
    Spent the day designing a fine-grained permission model.
    I now support 96 distinct permissions across 8 modules, 4 CRUD operations, and 3 scopes: self, group, global.
    Three system roles bind these into meaningful sets:
    admin: full global access (32 permissions)
    supervisor: read self + full group scope (32)
    employee: read/update self only (16)

    That's 80 role-permission bindings total. Uff.

    write.as/bmariusz/designing-a-

    #sql #Microservices #monorepo #rbac #codingdays #programming #accessManagement

  4. Day 8
    TL;DR: Yesterday I took a break. Today I’m back – and permissions are under control :)
    Spent the day designing a fine-grained permission model.
    I now support 96 distinct permissions across 8 modules, 4 CRUD operations, and 3 scopes: self, group, global.
    Three system roles bind these into meaningful sets:
    admin: full global access (32 permissions)
    supervisor: read self + full group scope (32)
    employee: read/update self only (16)

    That's 80 role-permission bindings total. Uff.

    write.as/bmariusz/designing-a-

    #sql #Microservices #monorepo #rbac #codingdays #programming #accessManagement

  5. Day 7
    ✅ 24 test suites, 153 tests passing.

    Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).

    Next: fine-tuning error handling & exploring e2e strategies.

    write.as/bmariusz/24-test-suit

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  6. Day 7
    ✅ 24 test suites, 153 tests passing.

    Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).

    Next: fine-tuning error handling & exploring e2e strategies.

    write.as/bmariusz/24-test-suit

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  7. Day 7
    ✅ 24 test suites, 153 tests passing.

    Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).

    Next: fine-tuning error handling & exploring e2e strategies.

    write.as/bmariusz/24-test-suit

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  8. Day 7
    ✅ 24 test suites, 153 tests passing.

    Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).

    Next: fine-tuning error handling & exploring e2e strategies.

    write.as/bmariusz/24-test-suit

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  9. Day 6
    TL;DR: Groups, memberships, hierarchy — all dynamic now.

    Released backend v0.3.0 🎉

    ✅ Users can belong to multiple groups with typed roles
    ✅ Groups can form hierarchical or overlapping structures
    ✅ Roles are normalized via reference types

    Built with NestJS + TypeORM. Documented via Swagger.

    write.as/bmariusz/building-a-f

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  10. Day 6
    TL;DR: Groups, memberships, hierarchy — all dynamic now.

    Released backend v0.3.0 🎉

    ✅ Users can belong to multiple groups with typed roles
    ✅ Groups can form hierarchical or overlapping structures
    ✅ Roles are normalized via reference types

    Built with NestJS + TypeORM. Documented via Swagger.

    write.as/bmariusz/building-a-f

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  11. Day 6
    TL;DR: Groups, memberships, hierarchy — all dynamic now.

    Released backend v0.3.0 🎉

    ✅ Users can belong to multiple groups with typed roles
    ✅ Groups can form hierarchical or overlapping structures
    ✅ Roles are normalized via reference types

    Built with NestJS + TypeORM. Documented via Swagger.

    write.as/bmariusz/building-a-f

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  12. Day 6
    TL;DR: Groups, memberships, hierarchy — all dynamic now.

    Released backend v0.3.0 🎉

    ✅ Users can belong to multiple groups with typed roles
    ✅ Groups can form hierarchical or overlapping structures
    ✅ Roles are normalized via reference types

    Built with NestJS + TypeORM. Documented via Swagger.

    write.as/bmariusz/building-a-f

    #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming

  13. Day 5
    TL;DR: Continued work on backend security — role-based access is now fully wired up.

    ✅ Got fine-grained role-based access control fully working today.

    • Roles loaded from PostgreSQL
    • Injected into JWT during login
    • Validated via custom `@Roles()` + `RolesGuard`
    • Authenticated via `@UseGuards(JwtAuthGuard)` globally
    • Introduced `@Public()` decorator to bypass guards for public endpoints
    • Swagger supports Bearer token for testing

    Took a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.

    Modular, clean, and no magic. Feels good. 👌

    more on: write.as/bmariusz/continuation
    #CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
    #codingdays #swagger #jwt #jwt_auth #programming

  14. Day 5
    TL;DR: Continued work on backend security — role-based access is now fully wired up.

    ✅ Got fine-grained role-based access control fully working today.

    • Roles loaded from PostgreSQL
    • Injected into JWT during login
    • Validated via custom `@Roles()` + `RolesGuard`
    • Authenticated via `@UseGuards(JwtAuthGuard)` globally
    • Introduced `@Public()` decorator to bypass guards for public endpoints
    • Swagger supports Bearer token for testing

    Took a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.

    Modular, clean, and no magic. Feels good. 👌

    more on: write.as/bmariusz/continuation
    #CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
    #codingdays #swagger #jwt #jwt_auth #programming

  15. Day 5
    TL;DR: Continued work on backend security — role-based access is now fully wired up.

    ✅ Got fine-grained role-based access control fully working today.

    • Roles loaded from PostgreSQL
    • Injected into JWT during login
    • Validated via custom `@Roles()` + `RolesGuard`
    • Authenticated via `@UseGuards(JwtAuthGuard)` globally
    • Introduced `@Public()` decorator to bypass guards for public endpoints
    • Swagger supports Bearer token for testing

    Took a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.

    Modular, clean, and no magic. Feels good. 👌

    more on: write.as/bmariusz/continuation
    #CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
    #codingdays #swagger #jwt #jwt_auth #programming

  16. Day 5
    TL;DR: Continued work on backend security — role-based access is now fully wired up.

    ✅ Got fine-grained role-based access control fully working today.

    • Roles loaded from PostgreSQL
    • Injected into JWT during login
    • Validated via custom `@Roles()` + `RolesGuard`
    • Authenticated via `@UseGuards(JwtAuthGuard)` globally
    • Introduced `@Public()` decorator to bypass guards for public endpoints
    • Swagger supports Bearer token for testing

    Took a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.

    Modular, clean, and no magic. Feels good. 👌

    more on: write.as/bmariusz/continuation
    #CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
    #codingdays #swagger #jwt #jwt_auth #programming

  17. Na fotoblogu #trzecieokostaszczuk udało mi się w końcu wrzucić, trochę zdjęć z piątku. Warto korzystać, bo już bardzo mało brakuje do momentu, gdy dominować będzie monochromatyzm. staszczuk.blogspot.com/2025/11
    #zdjęcia #blog #wpis #Nikon #jesień #drzewa
    Obiecałem, że dam znać: @bmariusz

  18. Day 15

    Today I implemented full user registration with email verification.
    Registration creates an inactive account and sends a verification link with a JWT token.
    Verification activates the account if the token is valid and not expired, and assigns the user to the default trial subscription plan.

    I also introduced a custom JSON-based translation system, with language selected via the `x-lang` HTTP header.

    Finally, I refactored subscription logic: a separate `plans` table was added.

    Everything works. All tests passed.

    write.tyolabs.com/2025/07/10/d

  19. Day 14

    Registration Form Implementation
    I've just finished implementing a registration form with validation and language switching using Next.js and React Hook Form. Now users can register with dynamic language support (English/Polish) and data validation (email, password, phone).

    Unfortunately, my account on Write.as has been temporarily blocked, so details about the implementation will be available once the account is unlocked. Stay tuned! 😊

    write.tyolabs.com/?p=1

    #programming #next_js #javascript #typescript #monorepo #saas #codingdays

  20. Day 14

    Registration Form Implementation
    I've just finished implementing a registration form with validation and language switching using Next.js and React Hook Form. Now users can register with dynamic language support (English/Polish) and data validation (email, password, phone).

    Unfortunately, my account on Write.as has been temporarily blocked, so details about the implementation will be available once the account is unlocked. Stay tuned! 😊

    write.tyolabs.com/?p=1

    #programming #next_js #javascript #typescript #monorepo #saas #codingdays

  21. Day 14

    Registration Form Implementation
    I've just finished implementing a registration form with validation and language switching using Next.js and React Hook Form. Now users can register with dynamic language support (English/Polish) and data validation (email, password, phone).

    Unfortunately, my account on Write.as has been temporarily blocked, so details about the implementation will be available once the account is unlocked. Stay tuned! 😊

    write.tyolabs.com/?p=1

    #programming #next_js #javascript #typescript #monorepo #saas #codingdays

  22. Day 14

    Registration Form Implementation
    I've just finished implementing a registration form with validation and language switching using Next.js and React Hook Form. Now users can register with dynamic language support (English/Polish) and data validation (email, password, phone).

    Unfortunately, my account on Write.as has been temporarily blocked, so details about the implementation will be available once the account is unlocked. Stay tuned! 😊

    write.tyolabs.com/?p=1

    #programming #next_js #javascript #typescript #monorepo #saas #codingdays

  23. Day 14

    Registration Form Implementation
    I've just finished implementing a registration form with validation and language switching using Next.js and React Hook Form. Now users can register with dynamic language support (English/Polish) and data validation (email, password, phone).

    Unfortunately, my account on Write.as has been temporarily blocked, so details about the implementation will be available once the account is unlocked. Stay tuned! 😊

    write.tyolabs.com/?p=1

  24. Day 13
    version 0.6.0 released
    Scoped access is now enforced across all core modules. Each repository operation is tenant-aware via a shared ScopedRepository base class.

    Key facts:
    12 modules refactored
    96 updated tests
    1 shared base class (ScopedRepository) used across the board

    subscriberId is automatically applied in all find, findOne, save, remove operations

    1 very long workday

    Commit, tag, release — done

    write.tyolabs.com/?p=42

  25. Day 12

    Implemented password reset functionality using JWT:
    /auth/remind-password generates a short-lived token and sends it via email
    /auth/reset-password verifies the token and updates the password using bcrypt

    Validation handled with class-validator.
    Endpoints documented with Swagger.
    Token secret and base URL configured via environment variables.

    write.tyolabs.com/?p=33

    #programming #typescript #saas #microservices #monorepo #codingdays

  26. Day 12

    Implemented password reset functionality using JWT:
    /auth/remind-password generates a short-lived token and sends it via email
    /auth/reset-password verifies the token and updates the password using bcrypt

    Validation handled with class-validator.
    Endpoints documented with Swagger.
    Token secret and base URL configured via environment variables.

    write.tyolabs.com/?p=33

    #programming #typescript #saas #microservices #monorepo #codingdays

  27. Day 12

    Implemented password reset functionality using JWT:
    /auth/remind-password generates a short-lived token and sends it via email
    /auth/reset-password verifies the token and updates the password using bcrypt

    Validation handled with class-validator.
    Endpoints documented with Swagger.
    Token secret and base URL configured via environment variables.

    write.tyolabs.com/?p=33

    #programming #typescript #saas #microservices #monorepo #codingdays

  28. Day 12

    Implemented password reset functionality using JWT:
    /auth/remind-password generates a short-lived token and sends it via email
    /auth/reset-password verifies the token and updates the password using bcrypt

    Validation handled with class-validator.
    Endpoints documented with Swagger.
    Token secret and base URL configured via environment variables.

    write.tyolabs.com/?p=33

    #programming #typescript #saas #microservices #monorepo #codingdays

  29. Day 12

    Implemented password reset functionality using JWT:
    /auth/remind-password generates a short-lived token and sends it via email
    /auth/reset-password verifies the token and updates the password using bcrypt

    Validation handled with class-validator.
    Endpoints documented with Swagger.
    Token secret and base URL configured via environment variables.

    write.tyolabs.com/?p=33

  30. Day 11
    Well, technically it’s been a few days.

    I just finished populating the entire partner-contracts layer in our system. That means hundreds of users, each linked to the correct unit, with the proper supervisor, job title, and contract type. All of it reflected in a single, consistent data model.

    Every user has a contract pointing to their supervisor — with cascading relations:
    - regional managers report directly to the admin,
    - unit managers report to regional managers,
    - team leads report to unit managers,
    - and finally, operators, assigned in pairs to each lead.

    I’ve also updated every partner’s supervisor field, so hierarchy is fully navigable.

    It took some time and required pulling data from multiple sources:
    users, organizational units, and memberships, regional and structural hierarchy, and even address assignments.

    Numbers:
    Total test users & contracts: 1,408
    Regional Coordinators: 16
    Managers: 160
    Team Leads: 640
    Operators: 592

    write.tyolabs.com/?p=36

    #programming #sql #posgresql #testdata